条件或加入cakephp

时间:2015-06-10 12:08:37

标签: php mysql cakephp

我是蛋糕新手,我在表格中遇到查询时遇到问题。

        $options['joins'] = array(
        array('table'=>'users_views',
                  'alias' => 'UserView',
                  'type' => 'inner',
                  'conditions' => array(
                    'View.id = UserView.view_id',
                    'UserView.user_id' => $user_id,
                    'UserView.like' => 1
                   ),   
            )
        );
        $options['order'] = array('View.created' => 'desc');
        $options['limit'] = 10;

到目前为止我的查询,但我现在需要添加OR条件。在这种情况下或需要添加

'UserView.user_id' => $user_id,
'UserView.like' => 0

我需要查询返回匹配或是我的数据,如果很难理解,LIKE值为0请告诉我。 任何帮助或建议都会受到欢迎。

2 个答案:

答案 0 :(得分:2)

构建conditions喜欢 -

'conditions' => array(
     0 => array('View.id = UserView.view_id'),
     1 => array('UserView.user_id' => $user_id),
     3 => 'UserView.like => 1 OR UserView.like => 0'
),

或使用OR -

'conditions' => array(
     0 => array('View.id = UserView.view_id'),
     1 => array('UserView.user_id' => $user_id),
     2 => 'UserView.like IN (0, 1)'
),

答案 1 :(得分:1)

以下内容应该有效:

$options['joins'] = array(
            array('table'=>'users_views',
                'alias' => 'UserView',
                'type' => 'inner',
                'conditions' => array(
                    'View.id = UserView.view_id',
                    'OR' => array(
                        'UserView.user_id' => $user_id,
                        'UserView.like' => 1
                    )
                ),
            )
        );
        $options['order'] = array('View.created' => 'desc');
        $options['limit'] = 10;