【发布时间】:2017-08-17 18:04:09
【问题描述】:
我已经研究过这个答案:Laravel Eloquent ORM relationship naming conventions
还有这个Query foreign key data from Blade template
但仍然无法解决我的问题。 我有两个模型:产品和类别,我想在我的刀片页面上显示产品数据及其类别 [name of course]。我知道可以通过将它添加到我的控制器中的返回数据来做到这一点,但是我想利用 Eloquent 来做到这一点,但是我收到了错误。
这是我的代码:
产品型号
protected $table = 'product_details';
public function category() {
return $this->belongsTo('App\category', 'category_id');
}
类别模型
protected $table = 'category';
public function product() {
return $this->hasMany('App\product');
}
产品控制器
public function index()
{
$products = product::select('id', 'product_name', 'category_id', 'is_active', 'created_at', 'updated_at')->get();
return view('admin/product/index', compact('products'));
}
索引刀片页面
{{ $product->category->category_name }}
表格
product_details
id
product_name
catgory_id
类别
id
category_name
我得到的错误:
试图获取非对象的属性
【问题讨论】:
-
你能发布
dd($product->category)的输出吗?我怀疑它是 null 可能是因为 category_id 为空或与类别表不匹配
标签: php mysql laravel eloquent blade