Multiple Associations to the Same Model in CakePHP 3

后端 未结 2 1943
感动是毒
感动是毒 2021-02-09 02:18

I am using cakePHP version 3.x.

When i query the MessagesTable i want to get the Users data for the the sender and the receiver of the message. I have done this many tim

2条回答
  •  无人共我
    2021-02-09 02:28

    Thank you for your help @drmonkeyninja. I have found what was wrong, all i needed to do was call the Users associations i defined in the MessagesTable, i feel so stupid now.

    MessagesTable

    $this->belongsTo('Sender', [
        'className' => 'Users',
        'foreignKey' => 'sender_id',
        'propertyName' => 'Sender',
    ]);
    $this->belongsTo('Receiver', [
        'className' => 'Users',
        'foreignKey' => 'user_id',
        'propertyName' => 'Receiver'
    ]);
    

    The query that works:

    $messages = $this->Messages->find()
            ->where(['Messages.user_id' => $this->Auth->user('id')])
            ->orwhere(['Messages.sender_id' => $this->Auth->user('id')])
            ->order(['Messages.created' => 'DESC'])
            ->contain([
                'Sender',
                'Receiver'
            ])
        ;
    

提交回复
热议问题