【问题标题】:Cannot get details of data from product table that are added to wishlist table无法从添加到愿望清单表的产品表中获取数据的详细信息
【发布时间】:2020-03-09 14:51:37
【问题描述】:

我想要添加到愿望清单的产品的详细信息。我正在从愿望清单表中获取数据,但我也想建立产品和用户模型的关系,以便我可以获得产品的详细信息。我的表结构是:

愿望清单:

id | product_id | user_id 

产品表:

id | name | price 

用户表:

id  | first_name  | last_name | contact 

愿望清单模型:

public function user(){
   return $this->belongsTo(User::class);
}

public function product(){
   return $this->belongsTo(Product::class);
}

产品型号:

public function wishlist(){
    return $this->hasMany(Wishlist::class);
 }

 public function users()
{
    return $this->belongsToMany(User::class);
}

用户模型:

public function wishlist(){
    return $this->hasMany(Wishlist::class);
 }

我正在通过此代码从愿望清单表中获取数据,但无法从产品表中获取数据:

return Wishlist::with('product')->where('user_id', auth()->id())->get();  

产品关系返回 null

【问题讨论】:

    标签: laravel laravel-5 eloquent


    【解决方案1】:

    我认为最好使用Many To Many 关系。在这种情况下,您不需要 Wishlist 模型。

    Product.php

    public function users()
    {
        return $this->belongsToMany(User::class,'wishlists');
    }
    

    User.php

    public function products()
    {
        return $this->belongsToMany(Product::class, 'wishlists');
    }
    

    然后你可以像这样获取用户的愿望清单:

    auth()->user()->products;
    

    【讨论】:

    • 我用过这个代码:$wishlist = $this->wishlistRepository->listWishlist();但产品数据为空。
    • 这是listWishlist的代码:$this->model->with('product')->where('user_id', auth()->id())->get() ;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    相关资源
    最近更新 更多