2017-04-14 145 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