我有一個帶有id,task_id,user_id和sender_id的Tasks_Users表。問題是user_id和sender_id都是指用戶表中的facebook_id,我不知道如何用兩個外鍵將它們連接在一起。 有沒有辦法讓我們可以從一列中獲得兩個用HABTM關係定義的外鍵?CakePHP Multiple hasAndBelongsToMany HABTM
更新:下面是我目前在我的任務模型中設置的內容。
var $hasAndBelongsToMany = array(
'User' => array(
'className' => 'User',
'joinTable' => 'tasks_users',
'foreignKey' => 'task_id',
'associationForeignKey' => 'user_id',
'unique' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
),
'Sender' => array(
'className' => 'User',
'joinTable' => 'tasks_users',
'foreignKey' => 'task_id',
'associationForeignKey' => 'sender_id',
'unique' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)
);
下面是用戶模型
var $hasAndBelongsToMany = array(
'Task' => array(
'className' => 'Task',
'joinTable' => 'tasks_users',
'foreignKey' => 'user_id',
'associationForeignKey' => 'task_id',
'unique' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)
);
下面是TasksUser模型
var $belongsTo = array(
'Task' => array(
'className' => 'Task',
'foreignKey' => 'task_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Sender' => array(
'className' => 'User',
'foreignKey' => 'sender_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
我設法讓兩個多選框一個USER_ID,另一個用於SENDER_ID但問題是我無法同時保存兩行同一行...
數據數組來就像這樣$ this-> data ['User'] ['User'] [] and $ this-> data ['Sender'] ['Sender'] []
理論上它應該保存兩者,當您在腳手架中爲任務控制器保存使用添加操作時,僅將Sender_id保存在TasksUser表中,並且當您在用戶控制器的腳手架中使用添加操作進行保存時,僅在TasksUser表中保存User_id。
的TasksUser表是如下:
id task_id user_id sender_id
我怎樣才能使它所以它節省了USER_ID,並在同一行SENDER_ID ???
哪個控制器適用於? –
把上面的代碼放在Tasks_Users_controller – chetanspeed511987
的行爲中查找您的查詢,很抱歉,但這不起作用 –