'Joining two tables in CakePHP using bindModel method Cakephp

I am working on a cakephp 2.x .. I have two tables in my database both have the userid I am using bindModel.. my query is working fine ... I just have one problem .. I want to add the condition in where clause that

  **where userid = $userid** 


 function getMessages($userid){
     $this->bindModel(array(
        'belongsTo' => array(
        'Contact' => array(
            'className' => 'Contact',
            'foreignKey' => false,
            'conditions' => array(

                'Message.user_id = Contact.user_id',
                'AND' =>
                array(
                    array('OR' => array(
                        array('Message.mobileNo = Contact.mobileNo'),
                        array('Message.mobileNo = Contact.workNo'),

                    )),


                )


            ),
            'type' => 'LEFT',


        )
    )
), false);

return $this->find('all', array('conditions' => array(),
    'fields' => array('Message.mobileNo'


    ),
    'group' => 'Message.mobileNo',
    'limit' => 6));


          }

I am getting user id in parameter ... so I want to add the condition that get the following result where

    message.userid and contact.userid = $userid ...


Solution 1:[1]

Just split the conditions in two lines like:

'conditions' => array(
    'Contact.user_id' => $userid,
    'Message.user_id = Contact.user_id',
    [...]
 )

But the approach that makes more sense is to leave the bind as is - after all the bind is generally between message users and contact users with the same id - and add the condition for the specific case in your find('all') with 'Message.user_id' => $userid.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1