我试图从两个表(brands 和 raw_materials)中获取数据,通过外键(brand_id)连接。一个品牌可以有多种原材料。我希望所有内容都显示在一页上的各自品牌下。相反,我将结果单独显示。
使用 Laravel 5.7 和 Eloquent。
My Tables
[brands]
id name
----------
1 Apple
2 Colgate
3 LintX
[raw_materials]
id name brand_id quantity
-----------------------------------------
1 50g pouch 1 200
2 10g laminate 3 320
3 75mm oil 1 500
4 Mint Rubber 3 400
5 Fire pouch 2 550
6 400 String 1 500
7 90g pouch 2 200
页面控制器
$brandData = DB::table('brands')
->join('raw_materials','raw_materials.brand_id','brands.id')
->select('brands.id as brand_id','brands.name as brand_name','raw_materials.name as raw_material','raw_materials.quantity')
->orderBy('brands.id')
->get();<br>
return view('rawmaterials.index', [
'brandData'=>$brandData,
]);
看法
@foreach ($brandData as $brand)
<p>Brand Name: {{$brand->brand_name}}</p>
<p>{{$brand->raw_material}} | Quantity: {{$brand->quantity}}</p>
<br>
@endforeach
预期结果:
品牌名称:Apple
50g 袋装| 数量:200
75mm 油 | 数量:500
400 串 | 数量:500
品牌名称:Colgate
Fire 小袋 | 数量:550
75mm 油 | 数量:500
400 串 | 数量:500
next brand ..
实际结果:
品牌名称:Apple
50g 袋装| 数量:200
品牌名称:Apple
75mm 油 | 数量:500
品牌名称:Apple
400 串 | 数量:500
品牌名称:Colgate
Fire Pouch | 数量:550
And so on..
qq_花开花谢_0