我有以下HABTM关系:
//Message.php
class Message extends AppModel {
public $hasAndBelongsToMany = array(
'User' => array(
'className' => 'User',
'joinTable' => 'messages_users',
'foreignKey' => 'message_id',
'associationForeignKey' => 'user_id',
'unique' => true));
}
//User.php
[...]
public $hasAndBelongsToMany = array(
'Message' => array(
'className' => 'Message',
'joinTable' => 'messages_users',
'foreignKey' => 'user_id',
'associationForeignKey' => 'message_id',
'unique' => true));
//[...]
}
在我的数据库中,我有以下表:users
,messages
和messages_users
(id
,user_id
和message_id
字段。
我正在保存我的数据:
//MessagesController.php
public function new_message() {
$users = $this->Message->User->find('list', array(
'fields' => array(
'username')));
$this->set(compact('users'));
if ($this->request->is('post')) {
//debug($this->request->data);
if ($this->Message->saveAll($this->request->data, array(
'deep' => true))) {
$this->Session->setFlash('Message sent.');
$this->redirect(array('action' => 'index'));
}
}
}
调试信息显示:
array(
'Message' => array(
'users' => '1',
'subject' => 'Subject',
'text' => 'Text'
)
)
表messages
中的数据保存没有问题,但联接表messages_users
为空。我做错了什么?
提前致谢!
答案 0 :(得分:0)
为了将数据保存在“加入”表格中,您可能需要一些数据来表示您希望您的项目实际“加入”。
例如,对于您的情况,您可能希望添加一个包含一些用户数据的数组。