laravel过滤由where子句或重用雄辩数据的雄辩数据

时间:2014-09-19 18:40:47

标签: laravel

我想重复使用laravel elequent数据。我不知道这个问题意味着什么。所以我将解释使用波纹管编码。 我想用波纹编码获得一些数据。

$pending = Case::where('user_id', $id)->where('status', 0)->paginate(20);
$approved = Case::where('user_id', $id)->where('status', 1)->paginate(20);

但我认为这不是一种有效的方法。 所以我使用波纹管编码而不是代码。 第一次将父数据变为变量。

$cases = Case::where('user_id', $id);

我尝试使用where子句从上面的变量中过滤子数据。

$pending = $cases->where('status', 0)->paginate(20);
$approved = $cases->where('status', 1)->paginate(20); 

执行$ pending后有正确的数据。但是没有按照我的意愿批准。 我怎样才能做到这一点。感谢。

1 个答案:

答案 0 :(得分:1)

$cases->where(...)在查询中添加了一个where子句,但在调用paginate(或get以及使用该结果的其他函数)之前,它才会执行。

因此,您的$approved查询基本上有WHERE status=0 AND status=1,这将永远不会有效。

您可以尝试将$cases复制到另一个变量(即$approvedCases = $cases;)中,但您可能最好使用原始代码。