Я новичок в торте и столкнулся с одной проблемой, связанной с ассоциацией.
У меня есть три таблицы: users
, messages
и messages_users
, и я использую отношение HABTM для этого в модели сообщений как:
var $hasAndBelongsToMany = array(
'Users' => array (
'className' => 'User',
'join_table' => 'messages_users',
'foreignKey' => 'message_id',
'associationForeignKey' => 'reciever_id',
'conditions'=> array('MessagesUser.reciever_id' => '$this->Session->read("Id")')
)
);
Моя проблема в том, что когда любой пользователь войдет в систему, он должен видеть список полученных им сообщений вместе с именем отправителя в таблице.
Но для меня это отношение выбирает только данные messages_users,
Мой контроллер такой,
<?php
class MessagesController extends AppController {
var $name = 'Messages';
//var $scaffold;
function home($id = null)
{
//$this->Message->id=$id;
//$messages_users = $this->Message->MessagesUser->find('all',array('conditions'=>array('MessagesUser.reciever_id'=>$this->Session->read("Id"))));
$messages_users = $this->Message->MessagesUser->find('all',array('fields'=>array('id','name')));
// $this->set(compact('tags'));
print_r($messages_users);
$this->set('messages_users',$messages_users);
$i=0;
foreach ($messages_users as $messages_user):
$new = $messages_users[$i]['MessagesUser']['sender_id'];
$i++;
print_r($new);
$messages = $this->Message->Users->find('all',array('conditions'=>array('Users.id'=>$new)));
// print_r($messages);
$this->set('messages',$messages);
endforeach;
}
} ?>
Поэтому, пожалуйста, кто-нибудь, помогите мне, как получить результат для этого.