Laravel - 模型不会传递给first()方法的闭包

时间:2015-01-25 09:41:19

标签: php laravel collections model

我有一个collection,我在其上调用first()方法,其中一个闭包期望一个参数说$model

执行时,如果我尝试访问$model的属性;它说:

  

访问非对象的属性

我尝试转储$model,发现它有一个整数1而不是Object

$Collection->first( function($model) {
    if(!$model) return false;
    return $model->type == 'Test';
});

1 个答案:

答案 0 :(得分:4)

我刚开始工作了。 first()方法的参数闭包提供了2个变量。第一个是关键,第二个是模型。因此,您将调用first()方法,如下所示,如果它符合您定义的条件,则只需返回true

$result = $collection->first( function($i, $model) {
    // define criteria and return true if it satisfies. The model will now be returned in resulting Collection.
});