0
我有以下HABTM關係:CakePHP的:連接表是空的(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
是空的。我究竟做錯了什麼?
在此先感謝!
戴夫您好,感謝您的回答!我已經閱讀並重新閱讀了這本書,但是我仍然無法理解HABTM關係......我只是想創建一條新消息並將其與創建的用戶關聯起來,該用戶之前通過下拉列表選擇(通過表單) 。我不需要向用戶表添加新數據。我需要將一條新消息與一個(或多個)創建的用戶鏈接起來。 – MorbidDesign