前提・実現したいこと
Laravel6でログイン者が投稿したモノを一覧表示させる機能を作りたいです。
<input type="hidden" name="user_id" value="{{Auth::user()->id}}">
これでログイン者のidを送り、
public function getClothShow() { $id=Auth::user()->id; // Clothモデルのデータを取得 $clothes=Cloth::where("user_id",$id); return view('index.cloth',['clothes'=>$clothes]); }
コントローラーの部分で以上のようにしています。
発生している問題・エラーメッセージ
エラーメッセージなどはなく、データが何も表示されません。
何が足りてないのでしょうか?
該当のソースコード
home.blade.php
1<input type="hidden" name="user_id" value="{{Auth::user()->id}}">
これでログイン者のidを送り、
Controller.php
1public function getClothShow() 2 { 3 $id=Auth::user()->id; 4 // Clothモデルのデータを取得 5 $clothes=Cloth::where("user_id",$id); 6 7 return view('index.cloth',['clothes'=>$clothes]); 8 }
コントローラーの部分で以上のようにしています。
一覧表示に用いるviewの該当ソースは以下の通りです
<div class="container"> <table class="table"> <tbody> @foreach($clothes as $cloth) <tr> <th scope="row">{{$cloth->image}}</th> <td>{{$cloth->category}}</td> <td>{{$cloth->name}}</td> <td>{{$cloth->category}}</td> <td>{{$cloth->size}}</td> <td> <a href="/cloth/{{$cloth->id}}" class="btn btn-primary btn-sm">詳細</a> <a href="" class="btn btn-primary btn-sm">編集</a> <a href="" class="btn btn-danger btn-sm">削除</a> </td> </tr> @endforeach </tbody> </table> </div>
試したこと
phpmyadminを確認すると、データは登録されており、user_idも登録されています。
dd()で$idの中身を確認すると1と表示されます。(user_idが1なのであっているはず)
$clothes=Cloth::all();
に変えるとデータはしっかりと表示されます。
viewのソースを書いていただけると。
追記しました。いかがでしょうか?
同じ内容が繰り返されています。まとめてください。
ただ、「これでログイン者のidを送り」とありますが、受け取ってるわけではないようですね。Authから取り直すのであればhidden意味ないのでは?
「送り」と言いますが、どのように送っていますか?
hiddenを含むコード、ルーティングも含めて全体の流れがわかる内容をご提示ください。
情報不足失礼しました。hiddenで送ったデータは別のコントローラーによってデータに登録される仕組みは完成しておりました。お忙しい中ご検討くださいましてありがとうございます。
他の回答者の方のご指摘により、$clothes=Cloth::where("user_id",$id)のあとに->get();が抜けているだけだということが発覚しました。
実装とやりたいことが違うのは私も感じていました。
ただ、書かれていることが全てなのでなにがどこまで出来ているかはコードレベルでも分かるようにしてもらっていた方が良さそうです。
的確な回答がもらえるスピード感が全く違います
ご指摘ありがとうございます。
初めての質問投稿ということもあり、どこまでコードを見せたほうがいいかわかりませんでした...
次回からは気をつけたいと思います。
基本的に「他者がコピペで再現確認できる程度」です。データ関係するのでしたら定義とサンプルデータまであればより良いです
詳しく教えていただきありがとうございます。
回答2件
あなたの回答
tips
プレビュー