这个想法很简单,但是我还没有实现它。
这是代码
(我已经更改了变量的名称来描述它们的用途)
$games = Game::all();
$games_already_added = $member->games()->lists('id');
$games = $games->filter(function($game){
global $games_already_added;
if(!in_array($game->id,$games_already_added)){
return true;
}
});
当代码执行时我收到错误
in_array() 期望参数 2 为数组,给定 null
我已验证变量 $games_already_added
定义在外部范围内并包含项目。
有什么方法可以将 $games_already_added
变量作为参数传递给集合的过滤函数?
非常感谢任何形式的建议或指导!
谢谢!
最佳答案
它不是全局的,而是 use
与闭包一起工作:
$games = $games->filter(function($game) use ($games_already_added) {
if(!in_array($game->id,$games_already_added)){
return true;
}
});
关于php - Laravel : Passing extra parameter on Collection filtering,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24597499/