创建一个“基础”查询queryBuilder

时间:2015-03-18 06:43:53

标签: php laravel-4 query-builder

我觉得这很容易,但我找不到解决方案。

我必须从许多表创建查询,但是其中许多表有一个共同的表,该表具有相同的条件,我有“大”的想法创建像“basequery”。这是一个例子。

$baseQuery = DB:: ('table')->where ('condition_in_common', 1);

$bar = $baseQuery->join ('bar', 'table_id', '=', 'table.id')
    ->where (myOwnConditions);

$foo = $baseQuery->join ('foo', 'table_id', '=', 'table.id')
    ->where (myOwnConditions);

我期望有2个查询,一个用于表“bar”,另一个用于“foo”

select * from `table` inner join `bar` on `table`.`id` = `table_id` where condition_in_commom = 1 and myOwnConditions;

select * from `table` inner join `foo` on `table`.`id` = `table_id` where condition_in_commom = 1 and myOwnConditions;

但它并不像那样。

1 个答案:

答案 0 :(得分:0)

您可以执行此操作,但您必须clone查询,否则您将始终使用构建器类的相同实例:

$baseQuery = DB::table('table')->where('condition_in_common', 1);

$barQuery = clone $baseQuery;
$fooQuery = clone $fooQuery;

$bar = $barQuery->join('bar', 'table_id', '=', 'table.id')
                ->where(myOwnConditions)
                ->get();

$foo = $fooQuery->join('foo', 'table_id', '=', 'table.id')
                ->where(myOwnConditions)
                ->get();