Я хочу создать привязку из одной модели к моей модели пользователя на лету, чтобы соединение не вызывалось каждый раз, когда я выполняю поиск по этой модели.Я использую привязку, чтобы выполнить сохранение HABTM.Однако, когда я использую функцию bindModel, данные HABTM не сохраняются в базе данных.
Что делает это странным, так это то, что если я перенесу свою привязку на модель User, сохранение будет работать отлично.Я не вижу никаких указаний в документации, что поведение сохранения было бы другим, когда в модели была установлена связь с функцией bindModel (хотя, возможно, я пропустил ее, если она есть).
Здесьмой код bindModel в моем контроллере:
$this->User->bindModel(
array(
'hasAndBelongsToMany' => array(
'Othermodel' => array(
'className' => 'Othermodel',
'joinTable' => 'othermodels_users',
'foreignKey' => 'user_id',
'associationForeignKey' => 'othermodel_id',
'unique' => true,
)
)
)
);
if($res = $this->User->save($data)){
return true;
}
И это моя модель пользователя.
class User extends AppModel {
public $name = 'User';
public $belongsTo = array();
public $hasOne = array();
public $hasMany = array();
public $hasAndBelongsToMany = array(
'Othermodel' => array(
'className' => 'Othermodel',
'joinTable' => 'othermodels_users',
'foreignKey' => 'user_id',
'associationForeignKey' => 'othermodel_id',
'unique' => true
)
);
Опять же, у меня только активные отношения в одном месте одновременно, поэтому язнаю проблема не с самой привязкой.Кажется, проблема связана исключительно с тем, что я пытался использовать bindModel.Это предполагаемое поведение?