Php Laravel:在集合筛选上传递额外参数

Php Laravel:在集合筛选上传递额外参数,php,laravel,eloquent,Php,Laravel,Eloquent,这个想法很简单,但是我还没有实现它 这是密码 (我更改了变量的名称以描述其用途) 当代码被执行时,我收到错误 _array()中的要求参数2为数组,如果给定空值 我已验证已添加的变量$games\u是否在外部范围中定义并包含项目 是否有任何方法可以将已添加的$games\u变量作为集合过滤函数的参数传递给我? 非常感谢您的任何建议或指导 谢谢大家! 它不是全局的,但是使用与闭包一起工作的: $games = $games->filter(function($game) use ($game

这个想法很简单,但是我还没有实现它

这是密码

(我更改了变量的名称以描述其用途)

当代码被执行时,我收到错误

_array()中的
要求参数2为数组,如果给定空值

我已验证已添加的变量
$games\u
是否在外部范围中定义并包含项目

是否有任何方法可以将已添加的
$games\u
变量作为集合过滤函数的参数传递给我?

非常感谢您的任何建议或指导


谢谢大家!

它不是全局的,但是
使用与闭包一起工作的

$games = $games->filter(function($game) use ($games_already_added) {
    if(!in_array($game->id,$games_already_added)){
        return true;
    }   
});

严格来说,这并不是你想要做的,但看起来这是你想要实现的

$games_already_added = $member->games()->lists('id');
$games = Game::whereNotIn('id', $games_already_added)->get();

但是如果你真的想做过滤,@deczo的答案就是最好的选择。

或者你可以做
返回!在数组中($game->id,$games\u已经添加)
@djay确实是djay,但是我这里的问题是无法访问已经添加的数组,但是,感谢您缩短了行!再次感谢您@deczo!这一定会派上用场的!Grrr我知道我需要
use
,但忘了把参数括在括号里
$games_already_added = $member->games()->lists('id');
$games = Game::whereNotIn('id', $games_already_added)->get();