如何在不修改第一个变量的情况下使用Fluent

时间:2016-06-17 13:47:24

标签: php laravel

假设我有一个非常简单的表格,并且在我的Laravel安装中的某处:

$model = DB::connection('second')->table('models');

后来我想做类似的事情:

echo $model->where('column', 1)->count();

echo $model->where('another_column', 0)->count();

然而第二个不起作用,因为$model已经是其他东西了。它必须与该链接有关,但如何在不改变$model的情况下做同样的事情?

2 个答案:

答案 0 :(得分:4)

您可以尝试使用PHP的clone

$baseQuery = DB::connection('second')->table('models');

$countQuery = clone $baseQuery;
$countQuery->where('column', 1)->count();

$otherQuery = clone $baseQuery;
$otherQuery->where('another_column', 0)->count();

答案 1 :(得分:0)

如果你要做$model = $model->where('another_column', 0)->count();,那么第二个就可以了。

当然,如果你不想改变$model,你可以做$modelb = $model->where('another_column', 0)->count();