前提
phpのフレームワーク Laravel6系を使用し、ECサイトを作成中
実現したいこと
購入履歴を表示する際に、商品画像と商品情報を持ってきたい
(getで取得した情報で他テーブルの情報を取得したい)
テーブル名…カラム
Files…id、product_id、product_id、user_id、path etc
※商品には複数画像登録可能、user_idはプロフィール画像登録用
Product...id、name、price etc(商品名や値段等の商品の情報)
ordered_items…id、user_id、product_id、price etc
(購入したuserのid、購入したproductのid、購入した商品の値段他)
発生している問題・エラーメッセージ
欲しい値が返ってこない arrayでFileテーブルからid=0、product_id=0のレコードが返ってきている (id=0は画像が登録されていなかった時に使用するデフォルト画像の情報)
該当のソースコード
controller
1public function orderd_by_lists(){ 2 $file = new File; 3 $product = new Product; 4 $orderd_by = new orderd_item; 5 $orderd_items = $orderd_by->where('user_id',auth::user()->id); 6 7 $orderd_product_ids = $orderd_items->get('product_id'); 8 // dd($orderd_product_id); 9 foreach($orderd_product_ids as $orderd_product_id){ 10 $files = File::where('product_id',$orderd_product_id)->get(); 11 } 12 dd($files); 13 return view('orderd_by_lists'); 14 }
補足
流れは
行4:orderd_itemsテーブルからuser_id(購入したuserのid)と自分のidが一致しているものを取得、
行7:上記からproduct_idのみを取得
行10:Fileテーブルのproduct_idが行7で取得したproduct_idと一致するもののみ取得
この後、行10で一致した情報を変数に渡し、viewで$file->pathで画像表示予定
行4の情報を使って、name(商品名)、price(商品の値段)を表示
調べ方が悪いのか、解決に繋がる情報を見つける事ができておりません。
テーブルの1つの値を取得し、その値を用いて、他テーブルの情報を取得する、という事なのですが、どのようにしたら良いのかご教示いただければ幸いでございます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。