2017-05-21 34 views
2

我在我的項目laravel 5.4中使用並有2個模型,第一個模型是Group和第二個模型ist Ticket。如何在關係調用中使用laravel 5.4本地範圍?

模型組我有如下關係:

public function tickets() { 
return $this->hasMany('App\Models\Ticket', 'group_id'); 
} 

在臺門票(型號票)我有一個布爾場名爲「開放」,和當地的範圍:

public function scopeOpen($query) { 
    return $query->where('open', 1); 
} 

哪有我現在過濾使用這種關係,如:$group->tickets->open,我有嗎

回答

1

可以定義一個關係如此:

public function ticketsOpen() 
{ 
    return $this->tickets()->open(); 
} 

,然後按如下方式使用它:

$group->ticketsOpen; 
+0

它提供準確的信息需要,非常感謝朋友! – Caner

0

試試這個:

Group::with('tickets')->open()->get(); 
0

有幾種方法可以做到這一點。

這種關係添加到組模型

public function openTickets() 
{ 
    return $this->tickets()->open(); 
} 

訪問開放的門票,像這樣

$group->openTickets 

或者在獲取結果時,過濾門票。

$group = Group::with(['tickets' => function ($query) { 
    $query->open(); 
}])->get(); 

訪問的門票將應用open範圍。

$group->tickets