ORM'or_where'使用

时间:2014-06-03 09:43:36

标签: php orm kohana kohana-orm

我希望我的ORM工厂能够返回x = 1且y等于1或2的记录。我已尝试使用and_where进行一些变更,但它返回的负载超过记录而不是它应该。然后将ORM存储在php变量中。这是我当前的代码

$tests = ORM::factory('Test')
    ->where('x', '=', 1)
    ->or_where('y', '=', 1)
    ->or_where('y', '=', 2)
    ->find_all();

1 个答案:

答案 0 :(得分:1)

您可以通过and_where_open() / and_where_close()OR语句进行分组(未经测试)

$test = ORM::factory('Test')
    ->where('x', '=', 1)     // 1
    ->and_where_open()       // 2
    ->where('y', '=', 1)     // 3
    ->or_where('y', '=', 2)  // 4
    ->and_where_close()
    ->find_all();

这应该创建一个像

这样的查询
SELECT .. FROM .. WHERE x = 1   AND (  y=1   OR y=2  )
                        ^^^^^   ^^^^^  ^^^   ^^^^^^
                          1       2     3      4