我想創建從一個模型到我的用戶模型的動態綁定,以便每次在該模型上執行查找時都不會調用JOIN。我正在使用該綁定執行HABTM保存。但是,當我使用bindModel函數時,HABTM數據不會保存在數據庫中。CakePHP bindModel HABTM保存
是什麼讓這個奇怪的是,如果我移動我的綁定到用戶模型,然後保存完美的作品。我沒有在文檔中看到任何跡象表明,當模型與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的事實有關。這是預期的行爲嗎?
感謝您的建議,但沒有奏效。我相信保存是我在模型綁定之後嘗試的唯一操作。我的代碼與上面顯示的完全一樣。我已經嘗試了一些其他測試,以確保Cake正在創建此關聯,而不是通過調試功能創建一個動態關聯,並且再次,所有看起來不錯,但保存不會發生。只要我在控制器中註釋掉綁定並移動到模型中,它就可以很好地工作。奇怪的。 – 2011-04-09 15:52:03