初めての投稿になります。Laravelを始めて1か月です。
至らない点もあると思いますが、よろしくお願いします。
前提・実現したいこと
Laravel、MYSQLでレシピ検索のホームページを作成しています。
登録してあるレシピのページを表示させたいです。
DB
テーブル recipes
id | auto_increment | primary key
name |varchar
テーブル foods
id | auto_increment | primary key
name | varchar
num | varchar
recipe_id | int
recipes と foods は1対多のリレーション関係
発生している問題・エラーメッセージ
テーブルrecipesのidを取得しURLに埋め込み。
リレーション先のname と numには複数データが入っており、recipe_id = 1のときは当てはまるものを取得したいのですが上手くいきません。
該当のソースコード
controller
1 2public function page(Request $request, $id) 3 { 4 //URLにidを埋め込み表示 5 $recipe = Recipe::findOrFail($id); 6 7 $food = Food::where('recipe_id', $id)->get(); 8 9 return view('/') 10 ->with('recipe', $recipe)->with('food', $food); 11 }
view
1<div class="recipe_list"> 2 <div class="re_photo"> 3 <img src="{{asset($recipe->photo)}}" width="250px" height="auto"> 4 </div> 5 <div class="re_na_fo"> 6 <div class="re_name"><h1>{{ $recipe->name}}</h1></div> 7 <div class="re_food"> 8 <table> 9 <thead> 10 <tr> 11 <th scope="col">材料</th> 12 <th scope="col">量</th> 13 </tr> 14 </thead> 15 <tbody> 16 <tr> 17 <td data-label="材料" class="zairyo"><span>{{$food->name}}</span></td> 18 <td data-label="量" class="kazu">{{$food->num}}</td> 19 </tr> 20 </tbody> 21 </table> 22 </div> 23 </div> 24</div>
試したこと
公式ドキュメントや他の方のサイトを参考にいろいろ試してみましたが、探していることに当てはまるものがありませんでした。
$idは決まっているので $food = Food::all();
で取得すると$idのすべてが出るのではないかと思ってやってみたり、
if('recipe_id', $id){
などif文を使うのか、いろいろ試してみたのですが、エラーが出るばかりです。
$id = recipe_idでidの値は取れているのであとは紐づけて表示させるだけという考え方なのですが、考え方がまず違いますか?
アドバイスをよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー