結合させたものの値が入っていない
解決したいこと
laravelで一覧画面を作成しています。
forechの$product->company_nameの部分が、
デバッグして確認すると
値が入っておらず、表示されません。
DBにproductsテーブルとcompaniesテーブルがあり、
company_nameはcompaniesテーブルにあります。
2つのテーブルをleft joinで結合し、
表示させようとしましたが、できませんでした。
どこを直せば、表示されるのでしょうか?
教えて頂きたいです。
SELECT
`products`.`img_path`,
`products`.`product_name`,
`products`.`price`,
`products`.`stock`,
`products`.`comment`,
`products`.`id`,
`companies`.`company_name`
FROM
`products`
LEFT JOIN
`companies`
ON
`products`.`company_id`=`companies`.`id`;
該当するソースコード
list.blade.php
<table class="table">
<thead class="thead-light">
<tr>
<th hidden>ID</th>
<th>商品画像</th>
<th>商品名</th>
<th>価格</th>
<th>在庫数</th>
<th>メーカー名</th>
</tr>
</thead>
<tbody>
@foreach ($products as $product)
<tr>
<td hidden>{{ $product->id }}</td>
<td><img src="{{ asset('storage/image/' . $product->img_path) }}"></td>
<td>{{ $product->product_name }}</td>
<td>{{ $product->price }}</td>
<td>{{ $product->stock }}</td>
<td>{{ $product->company_name }}</td>
<td>
<a href="product/{{ $product->id }}">
<button type="submit" class="btn btn-primary">詳細</button>
</a>
<form action="{{ route('delete', ['id'=>$product->id]) }}" method="post">
@csrf
<button type="submit" class="btn btn-danger">削除</button>
</form>
</td>
</tr>
@endforeach
</tbody>
ProductController.php
/**
*
* @return view
*/
public function showList() {
$products = Product::all()->paginate(10);
$companies = Company::all();
//dd($products->all());
return view('list',['products' => $products,'companies'=> $companies]);
}
0