Laravel 5.2:是否可以在eloquent对象中使用where子句条件

时间:2016-01-29 12:49:46

标签: php laravel-5 eloquent laravel-5.2

通过加入另一个表

来获取初始数据
$results = Model::join('joining other table')
                ->where('initial condition')
                ->limit(100)->get();

现在,我需要通过一些额外的条件来过滤数据。

$new = $results->where('column',value); // Additional Condition

我尝试了这个但是它返回空集合,即使在$ results集合中仍然存在。是否可以在后面的部分使用where条件?。

2 个答案:

答案 0 :(得分:1)

您可以使用非常强大的模型关系。如果您定义不同模型之间的关系,可以调用:

User::with(['posts' => function($builder){
  $builder->where('published', true) // this is on the relationship (posts)
}])->get();

您还可以执行以下操作:

Post::whereHas(['user' => function($builder){
    $builder->where('confirmed', true);
}])->get();

这只会返回确认相关用户的帖子......

答案 1 :(得分:0)

你试过了吗? Model::join('joining other table') ->where('initial condition') ->where('column',value) ->limit(100)->get();