写了个方法如下,不知道为啥, 最后返回的$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 }] 