【问题标题】:SQLSTATE[42S22]: Column not found: 1054 Unknown column 'categories.sub_category_id' in 'where clause' -- Laravel 5SQLSTATE [42S22]:找不到列:1054 'where 子句'中的未知列'categories.sub category id'——Laravel 5
【发布时间】:2017-09-14 06:48:10
【问题描述】:

我有两个表类别和子类别,我想显示类别及其连接的子类别。为此,我创建了一个查询。当我尝试使用一对多关系从类别表中获取类别名称时,它显示错误。

表格的结构如下
类别;身份证,姓名
子类别:id、category_id、子名称

// Category.php model   
class Category extends Model
{
    protected $primaryKey = 'id';
    protected $table = "categories";

    public function subcategories()
    {
        return $this->hasMany('App\SubCategory');
    } 
}

// Subcategory.php model       
class SubCategory extends Model
{
    protected $primaryKey = 'id';
   protected $table = "subcategories";

     public function category()
     {
         return $this->hasMany('App\Category');
     } 
}

// Category Controller
public function show()
{     
    $categories=  Category::all();
    $subcategories=Subcategory::all();
    return view('show',compact('categories','subcategories'));
}

// show.blade.php
@foreach($subcategories as  $subcategory)
    {{ $subcategory->subname }}
    {{ $subcategory->category_id }}
    {{ $subcategory->category->name }}
@endforeach

这一行给了我错误{{ $subcategory->category->name }}

【问题讨论】:

  • 你的抽象是如何工作的?它是如何从SubCategorysub_category
  • 我不明白你的意思。
  • 请发布模型类
  • 先生,我已经发布了上面的模型类。
  • 我已经对这个问题进行了排序。在子类别 .php 模型中,我需要将 hasmany 更改为 belongsTo。

标签: mysql laravel-5


【解决方案1】:

我需要将 hasmany 更改为 belongsTo

你是right,因为子类别只有一个类别,你需要使用belongsTo关系

class SubCategory extends Model
{
    protected $primaryKey = 'id';
    protected $table = "subcategories";

    public function category()
    {
        return $this->belongsTo('App\Category');
    } 
}

【讨论】:

    猜你喜欢
    • 2021-11-08
    • 2021-03-29
    • 2015-06-03
    • 2023-04-07
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    相关资源
    最近更新 更多