渴望加载不工作laravel 5.3

时间:2017-04-14 11:59:08

标签: php mysql laravel-5.3 one-to-many eager-loading

我有三个相关的模型。 1.用户模型

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

2.Product Model

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

3.Users_wishlst模型

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

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

在users_wishlsts表中我有followibg列

  1. ID
  2. USER_ID
  3. PRODUCT_ID
  4. 我想获取用户愿望清单的产品信息。我试过这个

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

    但是这给了我以下错误

      

    SQLSTATE [42S22]:找不到列:1054未知列   ' products.users_wishlst_id'在' where子句' (SQL:select * from   products其中productsusers_wishlst_id位于(1,2,3))   有什么问题

1 个答案:

答案 0 :(得分:0)

在不了解您的数据库结构的情况下,这似乎是您的外键问题。 Eloquent尝试自动猜测密钥。根据错误,您的产品表似乎不包含users_wishlst_id列(可能您将其命名为不同?)。尝试查看数据库并为Laravel提供正确的foreign_key。

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