理解cakephp的hasandbelongtomy
我正在尝试用用户模型检索电影的所有评论。我正在学习教程理解cakephp的hasandbelongtomy,php,cakephp,has-and-belongs-to-many,Php,Cakephp,Has And Belongs To Many,我正在尝试用用户模型检索电影的所有评论。我正在学习教程 $movie = $this->Movie->read(null, $id); 它返回到结构之下 Array ( [Movie] => Array ( [id] => 1 [title] => movie1 [release_date] => 2014-04-10 00:00:00 [
$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
)
)
)
)
我还想检索用户模型。所以,我可以显示用户名和其他信息。谁发布了这篇评论如果我是对的,那么您的关系方案应该如下所示:
id
user_id
movie_id
etc...
ReviewUser-> belongsto -> (User, Movie)
User-> hasMany -> ReviewUser
Movie-> hasMany -> ReviewUser
查看->目录->用户
和回顾->属于->电影
因此,最佳实践是创建一个名为
“hasMany-through(连接模型)”如下所示:
id
user_id
movie_id
etc...
ReviewUser-> belongsto -> (User, Movie)
User-> hasMany -> ReviewUser
Movie-> hasMany -> ReviewUser
注意:当您需要在关联表中存储更多嵌入信息时,这是一种很好的技术
因此,您现在可以使用条件语句表单reviews选择reviews,其中user_id=xxx
请参阅:您只需要在审阅模型上定义另一个关系 Review.php 添加此关系-
public $belongsTo = array('User');
它返回数组
(
[电影]=>阵列
(
[id]=>1
[标题]=>电影
[发布日期]=>2014-04-23 00:00:00
[导演id]=>1
)
)
我要它回来
排列
(
[电影]=>阵列
(
[id]=>1
[标题]=>电影
[发布日期]=>2014-04-23 00:00:00
[导演id]=>1
)
['User']=>数组(此处为用户数组)
)在下面的示例中,我看不到任何用户表及其与其他表的关系。我想你是指发布评论的用户。那么一个评论属于一个用户,而一个用户有很多评论我想添加Containable,我该怎么做?
[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
)
)