Kohana 3 ORM - 用括号分组条件

Dex*_*erW 6 php orm kohana kohana-3 kohana-orm

我试图通过ORM运行查询,如下所示:

   SELECT * from table where (fname like 'string%' or lname like 'string%') 
AND (fname like 'string2%' or lname like 'string2%');
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所拥有的:

$results = ORM::factory('profiles');
foreach ($strings as $string) {
    $result->where('fname', 'like', "$string%");
    $result->or_where('lname', 'like', "$string%");
}
Run Code Online (Sandbox Code Playgroud)

但这并没有考虑到括号.有任何想法吗?

Dex*_*erW 8

找到了答案.

这是通过Kohana的where_open()和where_close()方法完成的.


Kan*_*sad 7

这对我来说可以 .

ORM代码示例

$musicslist = ORM::factory('user_music')
            ->where_open()
            ->where('title', 'like', '%' . $search . '%')
            ->or_where('album', 'like', '%' . $search . '%')
            ->or_where('artist', 'like', '%' . $search . '%')
            ->where_close()
            ->and_where('app_userid','=', $userid)
            ->find_all();
Run Code Online (Sandbox Code Playgroud)

它将创建SQL查询

SELECT `user_musics`.* FROM `user_musics` WHERE (`title` LIKE '%as%' OR `album` LIKE '%as%' OR `artist` LIKE '%as%') AND `app_userid` = '21'
Run Code Online (Sandbox Code Playgroud)