У меня есть таблица Tasks_Users с id, task_id, user_id и sender_id. Проблема в том, что user_id и sender_id ссылаются на facebook_id в таблице Users, и я не уверен, как я могу связать их вместе с двумя внешними ключами.
Есть ли способ получить два внешних ключа, определенных с помощью отношения 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'] [] и $ this-> data ['Sender'] ['Sender'] []
Теоретически он должен сохранять оба, но, к сожалению, он сохраняет только Sender_id в таблице TasksUser, когда вы сохраняете, используя действие add в скаффолдинге для контроллера Tasks, и сохраняет только User_id в таблице TasksUser, когда вы сохраняете, используя действие add в скаффолдинге для контроллера Users.
Таблицы TasksUser приведены ниже:
id task_id user_id sender_id
Как мне сделать так, чтобы он сохранял и user_id, и sender_id в одной строке ???