我需要幫助,在CakePHP中創建3個表之間的正確關係。它們是:CakePHP中的表之間的關係
- 用戶 - PK = USER_ID
- 書籍 - PK = book_id
- books_users
我試圖讓我的users_books表包含所有的關係是什麼之間本書屬於什麼用戶,反之亦然,如:
ID | user_id | book_id
--------------------------
1 321 231
2 24 58
3 80 58
4 24 75
5 80 231
我的做法是做一個hasAndBelongsToMany-關係,bu t在添加新書時,users_books-table不會填充任何信息。
在我的控制器中,我嘗試了saveAll()和saveAssociated()方法,但沒有任何效果。
任何人都可以幫助我在我的模型中放置什麼關聯代碼來完成這項工作?
public function addBook() {
$this->Book->create();
$this->request->data['Book']['book_user_id'] = $this->Auth->user('user_id');
$data = $this->request->data['Book'];
if (!$data['book_img']['name']) {
unset($data['book_img']);
}
if ($this->Book->saveAll($data)) {
$this->Session->setFlash(__('The book has been saved.'));
return $this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The book could not be saved. Please, try again.'));
}
}
的新的數組:
$test = array('User' => $this->Auth->user('user_id'), 'Book' => $data);
pr($test);
輸出此:
Array
(
[User] => 4
[Book] => Array
(
[book_study_id] => ha_fil
[book_title] => The title
[book_price] => 123
[book_isbn] => 123
[book_user_id] => 4
)
)
在預先感謝的Jesper。
把你的'視圖'和'控制器'代碼也 –
@Anilkumar我已經添加了我的控制器動作的外觀,但它與我的視圖是如何相關的? –
[文檔](http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasandbelongstomany-habtm)... **表名按字母順序排列*按照慣例* 。可以在關聯定義中定義自定義表名。** – Nunser