我正在尝试过滤我的记录结果。我搜索谷歌并偶然发现this post。
我有一个一个记录的用户表 有效。
// Example 1:
$model = with(new User);
$model->where('is_active', '=', 0);
dd($model->count()); // Output: 1 (Expected: 0)
// Updated (for argument sake):
dd($model->get()->count()); // Output: 1 (Expected: 0)
但是,当我执行以下操作时,我得到了正确的结果:
// Example 2:
dd(User::where('is_active', '=', 0)->count() ); //Output: 0 (As expected);
我想做什么(伪代码):
// Example 3:
public static function getFiltered()
{
$model = with(new static);
// This is obviously populated but for argument sake.
$filters = array(
'is_active' => 1,
);
foreach ( $filters as $filter => $value ) {
$model->where($filter, '=', $value);
}
return $model;
}
我想我的问题是为什么示例1 无效?
请记住,链接的问题有一个已接受的答案,表明我的第一个例子应该有效。
答案 0 :(得分:1)
我想我的问题是为什么示例1不起作用?请记住,链接的问题有一个已接受的答案,表明我的第一个例子应该起作用
否 - 链接的已接听答案与您的示例1不同。
你的例子1应该是这样的:
$model = new User;
$newmodel = $model->where('is_active', '=', 0)->get();
dd($newmodel->count());
我想我的问题是为什么示例1不起作用?
因为您已应用了where()
查询,但结果没有get()
。