在elequent调用中使用in_array

时间:2016-07-04 14:57:53

标签: laravel laravel-5 laravel-5.1

我可以进行以下调用

$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();

上面的内容返回一个空的结果集,但希望它能证明我的目标。

我怎样才能做到这一点?

由于

2 个答案:

答案 0 :(得分:2)

听起来好像在寻找whereIn?:

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

答案 1 :(得分:1)

听起来你只想要一个简单的"其中"?

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

您将获得所有拥有" TeamA"

团队的客户

如果您希望获得多个群组的所有客户,请使用" whereIn":

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