我試圖從兩個表(brands 和 raw_materials)中獲取數據,通過外鍵(brand_id)連接。一個品牌可以有多種原材料。我希望所有內容都顯示在一頁上的各自品牌下。相反,我將結果單獨顯示。使用 Laravel 5.7 和 Eloquent。My Tables[brands]id name----------1 Apple 2 Colgate3 LintX[raw_materials]id name brand_id quantity-----------------------------------------1 50g pouch 1 2002 10g laminate 3 3203 75mm oil 1 5004 Mint Rubber 3 4005 Fire pouch 2 5506 400 String 1 5007 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預期結果:品牌名稱:Apple50g 袋裝| 數量:20075mm 油 | 數量:500400 串 | 數量:500品牌名稱:ColgateFire 小袋 | 數量:55075mm 油 | 數量:500400 串 | 數量:500next brand ..實際結果:品牌名稱:Apple50g 袋裝| 數量:200品牌名稱:Apple75mm 油 | 數量:500品牌名稱:Apple400 串 | 數量:500品牌名稱:ColgateFire Pouch | 數量:550And so on..
2 回答

qq_花開花謝_0
TA貢獻1835條經驗 獲得超7個贊
您可以先創建關系:
function raw_materials() {
return $this->hasMany(RawMaterial.class);
}
在您的控制器中,像這樣使用 with() 函數:
$brandData = Brand::with('raw_materials')->all();
return view('rawmaterials.index', [
'brandData'=>$brandData
]);
然后在您的視圖中,您可以獲取 raw_materials 表數據:
@foreach($branData as $brand)
<h3>{{ $brand->name }}</h3>
@foreach($brand->raw_materials as $raw_material)
<div>{{ $raw_material->name }}</div>
<div>{{ $raw_material->quantity }}</div>
@endforeach
@endforeach
- 2 回答
- 0 關注
- 226 瀏覽
添加回答
舉報
0/150
提交
取消