2017-04-14 26 views
1

私は3つの関連モデルを持っています。 1.UserモデルEager Loading is not working laravel 5.3

public function users_wishlst(){ 
     return $this->hasMany('App\Users_wishlst'); 
    } 

2。製品モデル

public function users_wishlst(){ 
     return $this->belongsTo('App\Users_wishlst'); 
    } 

3.Users_wishlst users_wishlstsテーブルのモデル

public function user(){ 
     return $this->belongsTo('App\User'); 
    } 

    public function product(){ 
     return $this->hasMany('App\Product'); 
    } 

iがfollowibg列を有する

  1. ID
  2. user_idの
  3. は、私は、ユーザーのウィッシュリストの製品情報を取得したい

をPRODUCT_ID。 : 'where句'(SQLで1054不明な列 'products.users_wishlst_id':列が見つかりません:私はSQLSTATE [42S22]をこの

public function showWishList(){ 
     $id= Auth::id(); 
     $WishList = wishlist::with('product')->where(['user_id'=>$id])->get(); 
     return json_encode($WishList); 
    } 

を試してみました。しかし、これは私に次のエラーを与える

ていますあなたについてすべてを知らなくてもproductsusers_wishlst_idでは、(1、2、3)) が問題

答えて

0

ものです productsから選択*これは外部キーの問題のようです。 Eloquentはキーを自動的に推測しようとします。このエラーに基づいて、あなたの製品テーブルにはusers_wishlst_id列が含まれていないようです(別の名前を付けたかもしれません)。データベースを見て、Laravelに正しいforeign_keyを与えてください。

https://laravel.com/docs/5.3/eloquent-relationships#one-to-many

+0

はい、あなたの推測は正しいです。製品表にusers_wishlst_id列が含まれていません。私の関係は正しくないかもしれません。私はユーザーのためにウィッシュリストを作成したい。そのために、ユーザーIDと製品IDが保存されるusers_wishlistsというテーブルを作成しました。雄弁を使って関係や方法を教えてもらえますか –

+0

この場合、users_wishlistsテーブルがユーザーと商品の間のピボットテーブルになる多対多の関係によく似ています。 https://laravel.com/docs/5.3/eloquent-relationships#many-to-many。 – ExCluSiv3