2017-04-14 103 views
1

我有三个相关的模型。 1.用户模型渴望加载不工作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'); 
    } 

我有followibg列

  1. ID
  2. user_id说明
  3. PRODUCT_ID

我想获得一个用户的愿望清单的产品信息。我已经试过这

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

但是这给了我下面的错误

SQLSTATE [42S22]:列未找到:1054未知列 在 'where子句'(SQL 'products.users_wishlst_id': SELECT * FROM products其中productsusers_wishlst_id(1,2,3)) 是什么问题

回答

0

不知道关于你的一切r数据库结构这似乎是你的外键问题。雄辩试图自动猜测密钥。根据错误,您的产品表似乎不包含users_wishlst_id列(也许您将其命名为不同?)。试着看看你的数据库,并给Laravel正确的foreign_key。

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

+0

是的,你的猜测是正确的。产品表不包含users_wishlst_id列。我的关系可能不正确。我想为用户创建一个愿望清单。为此,我创建了一个名为users_wishlists的表,其中用户标识和产品ID将被保存。你能帮助我解决关系问题,或者如何使用口才 –

+0

在这种情况下,这更像是一个多对多关系,其中users_wishlists表将成为用户和产品之间的数据透视表。 https://laravel.com/docs/5.3/eloquent-relationships#many-to-many。 – ExCluSiv3