我在我的项目laravel 5.4中使用并且有2个模型,第一个模型是Group,第二个模型是ist Ticket。
在模型组中,我有以下关系:
public function tickets() {
return $this->hasMany('App\Models\Ticket', 'group_id');
}
在表格票证(模型票证)中,我有一个名为"打开"的bool字段,以及本地范围:
public function scopeOpen($query) {
return $query->where('open', 1);
}
如何使用以下关系进行过滤:$group->tickets->open
,我有
答案 0 :(得分:2)
您可以这样定义关系:
public function ticketsOpen()
{
return $this->tickets()->open();
}
然后按如下方式使用它:
$group->ticketsOpen;
答案 1 :(得分:0)
试试这个:
Group::with('tickets')->open()->get();
答案 2 :(得分:0)
有几种方法可以做到这一点。
将此关系添加到组模型
public function openTickets()
{
return $this->tickets()->open();
}
像这样访问打开的门票
$group->openTickets
或者在获取结果时过滤票证。
$group = Group::with(['tickets' => function ($query) {
$query->open();
}])->get();
访问的故障单将应用open
范围。
$group->tickets