如何使用两个 ID 在 laravel 中设置关系?
How to set relation in laravel with two ids?
我有这两个表:
product
- id
- name
favorites
- id
- product_id
- user_id
因此,用户只能将产品添加到收藏夹一次。我怎样才能像下面这样建立这种关系?
public function favorites() {
return $this->hasOne(Favorite::class, 'user_id', 'product_id')
}
所以,我想同时使用 product_id
和 user_id
,这样查询就会 return 正确的结果如下:
Get me the wishlist of user with id 1
and product with id 13
!
你可以这样做:
最喜欢的模特class:
public function product(){
return $this->belongsTo('App\Product');
}
public function user(){
return $this->belongsTo('App\User');
}
产品型号Class:
public function favorites(){
return $this->hasMany('App\Favorite');
}
在用户模型中 Class:
public function favorites(){
return $this->hasMany('App\Favorite');
}
用户可能有很多收藏,所以在Class User
public function favorites()
{
return $this->hasMany('App\Favorite');
}
Class 最爱
public function product()
{
return $this->belongsTo('App\Product');
}
public function user()
{
return $this->belongsTo('App\User');
}
如果你有用户你可以
$userFavProducts = $user->favorites;
$product2 = $user->favorites()->where('product_id', 2)->get();
你应该试试这个:
收藏模型
public function product(){
return $this->belongsTo('App\Product','product_id');
}
public function user(){
return $this->belongsTo('App\User','user_id');
}
我有这两个表:
product
- id
- name
favorites
- id
- product_id
- user_id
因此,用户只能将产品添加到收藏夹一次。我怎样才能像下面这样建立这种关系?
public function favorites() {
return $this->hasOne(Favorite::class, 'user_id', 'product_id')
}
所以,我想同时使用 product_id
和 user_id
,这样查询就会 return 正确的结果如下:
Get me the wishlist of user with id
1
and product with id13
!
你可以这样做:
最喜欢的模特class:
public function product(){
return $this->belongsTo('App\Product');
}
public function user(){
return $this->belongsTo('App\User');
}
产品型号Class:
public function favorites(){
return $this->hasMany('App\Favorite');
}
在用户模型中 Class:
public function favorites(){
return $this->hasMany('App\Favorite');
}
用户可能有很多收藏,所以在Class User
public function favorites()
{
return $this->hasMany('App\Favorite');
}
Class 最爱
public function product()
{
return $this->belongsTo('App\Product');
}
public function user()
{
return $this->belongsTo('App\User');
}
如果你有用户你可以
$userFavProducts = $user->favorites;
$product2 = $user->favorites()->where('product_id', 2)->get();
你应该试试这个:
收藏模型
public function product(){
return $this->belongsTo('App\Product','product_id');
}
public function user(){
return $this->belongsTo('App\User','user_id');
}