前提
Laravel学習中でございます。
phpフレームワーク、Laravelを用いて、ECサイトを作成している最中でございます。
下記コード、該当箇所のみ抜粋して載せさせて頂きます。
その他、必要な情報ございましたら追記致します。
基本的な事は確認したつもりですが、スペルミス等、些細なミスでございましたら大変申し訳ございません。
ご回答宜しくお願い致します。
前提として、
DB:MySQL
Laravel:6系統
商品には複数の画像を登録可能
登録した画像はFileテーブルに保存される
親テーブル:Productテーブル(ID、商品名、値段etc...)
子テーブル:Fileテーブル(ID、product_id、path etc...)
実現したいこと
最終は一覧画面でProductの情報と登録された画像を表示させたい為、
if文を用いて商品画像が登録されていれば登録されている画像、
登録されていなければデフォルトの画像を変数としてviewに渡す予定でございますが、
その前段階の条件定義でエラーが発生しております。
発生している問題・エラーメッセージ
Call to undefined relationship [product_id] on model [App\File].
該当のソースコード
//Fileモデル class File extends Model { //Productsテーブルのid=Filesテーブルのproduct_id public function product(){ return $this->belongsTo('App\Product'); } public function user(){ return $this->belongsTo('App\User'); } }
DisplayContoller
1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use App\Http\Controllers\DisplayController; 7use Auth; 8use App\File; 9use App\Product; 10use App\User; 11 12class DisplayController extends Controller 13{ 14 public function index(){ 15 $file = new File; 16 //↓エラー箇所 17 $file_img = $file->with('product_id')->get(); 18 19 dd($file_img); 20 return view('home',compact('file_img')); 21 }
備考
MySQLには複数形のsをつけて、テーブルが存在する
(ex:Products、Files)
そのため、belongsToの第2引数を指定は指定する必要なしとの認識でございます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/09 02:35