1

这可能是一个愚蠢的问题,但我找不到任何答案。

我有一个简单的查询,例如“SELECT * FROM table WHERE (x=a AND y=b) OR z=c”,我只是不知道如何在 ZF2 中实现它。

我找到了很多关于 Predicates 和 Where 对象的信息,但我不知道如何将这些信息组合成一个由 AND 和 OR 组成的查询。

如果有人能指出我正确的方向,我将不胜感激。

4

1 回答 1

3

如果你想使用 AND 来添加它们,你可以简单地使用数组将它们传递给 select 对象,例如:

$select->where(array(
    'type'         => 'test,
    'some_field'   => '1'
));

如果您想要更复杂的 Where 查询,则可以使用 Where 对象来构建查询:

$where = new \Zend\Db\Sql\Where();
$where->addPredicate(
        new \Zend\Db\Sql\Predicate\Like('some_field', '%'.$value.'%')
)
->OR->->equalTo('my_field', 'bob')
->AND->equalTo('my_field', 'hello');

$select->where($where);
于 2013-04-08T09:48:39.917 回答