如何设置关系 Laravel 的位置?
How to set where in relation Laravel?
我使用以下结构来连接表:with("attachments", "offers.publisher").
public function publisher()
{
return $this->belongsTo("App\User", "user_id", "id");
}
如何仅在offers.status = 1
时加入publisher
关系?
换句话说,我需要根据条件 Where
使用 publisher
我也试过这个:
$announcements = Announcement::whereHas('offers', function($q) {
$q->with("publisher")->where('status', 1);
})->get();
最好的方法是只有两个定义,publishers
用于所有发布商,active_publishers
用于 status = 1
:
public function publisher()
{
return $this->belongsTo("App\User", "user_id", "id");
}
public function active_publisher()
{
return $this->publisher()->where('status', 1);
}
与$object->active_publisher()->get();
一起使用
这里link可以帮到你:
请检查:
Eloquent where condition based on a "belongs to" relationship
你也可以这样做:
假设您有一个 post 模态,每个 post 都有很多评论。所以可以通过如下where conditions
得到条件匹配post的评论
public function comments()
{
return $this->hasMany('App\Comment');
}
App\Post::find(1)->comments()->where('title', 'foo')->get();
谢谢
我使用以下结构来连接表:with("attachments", "offers.publisher").
public function publisher()
{
return $this->belongsTo("App\User", "user_id", "id");
}
如何仅在offers.status = 1
时加入publisher
关系?
换句话说,我需要根据条件 Where
使用publisher
我也试过这个:
$announcements = Announcement::whereHas('offers', function($q) {
$q->with("publisher")->where('status', 1);
})->get();
最好的方法是只有两个定义,publishers
用于所有发布商,active_publishers
用于 status = 1
:
public function publisher()
{
return $this->belongsTo("App\User", "user_id", "id");
}
public function active_publisher()
{
return $this->publisher()->where('status', 1);
}
与$object->active_publisher()->get();
这里link可以帮到你:
请检查:
Eloquent where condition based on a "belongs to" relationship
你也可以这样做:
假设您有一个 post 模态,每个 post 都有很多评论。所以可以通过如下where conditions
得到条件匹配post的评论 public function comments()
{
return $this->hasMany('App\Comment');
}
App\Post::find(1)->comments()->where('title', 'foo')->get();
谢谢