[英]understanding cakephp hasAndBelongsToMany
我試圖用用戶模型檢索所有電影評論。 我正在關注http://joshbenner.me/blog/understanding-cakephp-associations/教程。
$movie = $this->Movie->read(null, $id);
它返回結構以下
Array
(
[Movie] => Array
(
[id] => 1
[title] => movie1
[release_date] => 2014-04-10 00:00:00
[director_id] => 1
)
[Director] => Array
(
[id] => 1
[first_name] => direct
[last_name] => direc
)
[Review] => Array
(
[0] => Array
(
[id] => 2
[user_id] => 1
[body_text] => body_text 22 body_text
[ReviewsMovie] => Array
(
[id] => 1
[movie_id] => 1
[review_id] => 2
)
)
[1] => Array
(
[id] => 1
[user_id] => 1
[body_text] => s body_textbody_text
[ReviewsMovie] => Array
(
[id] => 2
[movie_id] => 1
[review_id] => 1
)
)
)
)
我也想檢索用戶模型。 所以,我可以顯示用戶名和其他信息。 發表評論的人
如果我對你的關系方案應該是這樣的:
評論 - > BelongsTo - >用戶和評論 - > BelongsTo也 - >電影
所以最好的做法是創建一個名為“hasMany through(The Join Model)”的新表ReviewUser,如下所示:
id
user_id
movie_id
etc...
ReviewUser-> belongsto -> (User, Movie)
User-> hasMany -> ReviewUser
Movie-> hasMany -> ReviewUser
注意:這是一個很好的技術,你需要在關聯表中存儲更多的嵌入信息。
所以你現在可以用條件語句選擇評論FORM review WHERE user_id = xxx
請參閱: http : //book.cakephp.org/2.0/en/models/associations-linking-models-together.html
您只需要在Review模型上定義另一個關系。
添加這種關系 -
public $belongsTo = array('User');
它返回Array([Movie] => Array([id] => 1 [title] => movie [release_date] => 2014-04-23 00:00:00 [director_id] => 1)
[Director] => Array
(
[id] => 1
[first_name] => direcot
[last_name] => or
)
[Review] => Array
(
[0] => Array
(
[id] => 1
[user_id] => 1
[movie_id] => 1
[author_name] => dsf
[body_text] => sdas
)
)
[UserReview] => Array
(
[0] => Array
(
[id] => 1
[user_id] => 1
[movie_id] => 1
)
)
)
我希望它回來
數組([電影] =>數組([id] => 1 [標題] =>電影[release_date] => 2014-04-23 00:00:00 [director_id] => 1)
[Director] => Array
(
[id] => 1
[first_name] => direcot
[last_name] => or
)
[Review] => Array
(
[0] => Array
(
[id] => 1
[user_id] => 1
['User'] => array(此處為用戶數組)
[movie_id] => 1
[author_name] => dsf
[body_text] => sdas
)
)
[UserReview] => Array
(
[0] => Array
(
[id] => 1
[user_id] => 1
[movie_id] => 1
)
)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.