2016-07-04 67 views
1

我可以做以下電話elequent調用中使用in_array

$userGroups = Auth::user()->getGroups(); 

上面會輸出類似下面的

array:10 [▼ 
    0 => "Admin" 
    1 => "TeamA" 
    3 => "USA" 
    4 => "security" 
    9 => "Users" 
] 

所以我可以看到我所有的上述成員組。我也有一個客戶表,這個表的一個領域是團隊。一個示例客戶端就像這樣

#attributes: array:11 [▼ 
    "id" => "3" 
    "clientName" => "Some Client" 
    "contactEmail" => "" 
    "team" => "TeamA" 
    "created_at" => "2016-07-04 15:08:15" 
    "updated_at" => "2016-07-04 15:08:15" 
] 

我想要做的是讓所有的客戶端有一個團隊,這是登錄用戶組的一部分。所以你可以看到我與TeamA分開,因此我希望所有擁有TeamA團隊價值的 客戶端。我正在考慮沿着這條線

$clients = Client::where('team', in_array('TeamA', $userGroups))->get(); 

上面返回一個空的結果集,但希望它演示了我後。

我該如何做到這一點?

感謝

+0

這聽起來像是應該使用' - >其中()'雄辯條款。查看這裏的文檔:https://laravel.com/docs/5.1/queries#where-clauses –

回答

2

聽起來好像你正在尋找whereIn

$clients = Client::whereIn('team', $userGroups)->get(); 
+1

感謝您的錯字! –

+0

完美無瑕,正是我以前的樣子。有一件事,你已經完成了::感謝之後的箭頭 –

1

聽起來像是你只是想要一個簡單的 「哪裏」?

$clients = Client::where('team', 'TeamA')->get(); 

您將獲得所有擁有「TeamA」團隊的客戶。

如果你想獲得的所有客戶端爲多個組,用「其中」:

$clients = Client::whereIn('team', $userGroups)->get();