2

私はcakephp 2.xに取り組んでいます..データベースに2つのテーブルがあり、両方ともbindModelを使用しているユーザーIDを持っています..クエリは正常に機能しています...問題が1つだけあります..条件を追加したいwhere句その

  **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));


          }

パラメータでユーザーIDを取得しています...そのため、次の結果を取得する条件を追加したいと思います

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

1 に答える 1

0

次のように条件を 2 行に分割するだけです。

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

しかし、より理にかなったアプローチは、バインドをそのままにしておくことです。バインドは通常、同じ ID を持つメッセージ ユーザーと連絡先ユーザーの間で行われます。特定のケースの条件を with に追加しfind('all')ます'Message.user_id' => $userid

于 2013-07-13T17:10:44.907 に答える