写了个方法如下,不知道为啥, 最后返回的$apps的所有项的is_allow属性都是 1,也就是说 if 判断 in_array 全为 false
public function apps()
{
$apps = App::all();
$myApp = \Auth::user()->apps;
$diffApp = $apps->diff($myApp);
foreach ( $apps as &$app )
{
if ( in_array($app, (array)$diffApp) )
{
$app->is_allow = 0;
} else {
$app->is_allow = 1;
}
}
return $apps;
}
foreach处理前的$apps
[{
"id": 1,
"name": "应用 1"
}, {
"id": 2,
"name": "应用 2"
}, {
"id": 3,
"name": "应用 3"
}]
$diffApp的内容
[{
"id": 1,
"name": "应用 1"
}]
foreach处理后的$apps
[{
"id": 1,
"name": "应用 1",
"is_allow": 1
}, {
"id": 2,
"name": "应用 2",
"is_allow": 1
}, {
"id": 3,
"name": "应用 3",
"is_allow": 1
}]