我有两个桌子
typings.d.ts
product.category是链接到category.id的外键。我正在构建一个基本的CRUD,我想在产品表中显示所有产品以及它们所属类别的名称,而不是其类别ID。为此,在搜索laravel文档时,我遇到了查询生成器,并实现了我的目标。
product: id|category ...
category: id|name ...
在我的产品和类别模型下,我创建了适当的关系。
product.php :
public function index()
{
$products = \DB::table('products')
->join('categories', 'products.category', '=', 'categories.id')
->select('*')
->get();
return view('product' ,compact('products'));
}
category.php :
public function category()
{
return $this->belongsTo('App\Category');
}
我一直在了解Eloquent的强大功能,并且想知道如何用口才实现类似的结果,以及是否为此类操作设计了口才,或者查询生成器是否是正确的方法。 每个在线教程似乎都只使用发布和评论场景,以使所有评论都属于某个帖子。
答案 0 :(得分:1)
您可以使用此代码
public function index()
{
$products = Product::with('category')->get();
return view('product' ,compact('products'));
}
刀片式服务器
@foreach($products as $product)
{{$product->name}}
{{$product->category->name ?? ''}}
//or
@if ($product->category)
$product->category->name
@endif
@endforeach
如果在项目表中,外键不等于category_id
。就您而言
public function category()
{
return $this->belongsTo('App\Category', 'category');
}