CakePHP上有一个子类型
我的数据库中有3个用户表:CakePHP上有一个子类型,cakephp,cakephp-2.0,has-one,subtype,Cakephp,Cakephp 2.0,Has One,Subtype,我的数据库中有3个用户表: 用户 users\u twitter 用户\u网络 用户是Users\u twitter和Users\u web的家长 然后是另一个评论表。这两类用户都可以发表评论 因此,当我想显示评论时,我需要获得每个评论作者的信息。 为此,我在/Model/Comment.php上使用变量$belongsTo,如下所示: public $belongsTo = array( 'users' => array( 'foreignKey' =>
用户
users\u twitter
用户\u网络
Users\u twitter
和Users\u web
的家长
然后是另一个评论表。这两类用户都可以发表评论
因此,当我想显示评论时,我需要获得每个评论作者的信息。
为此,我在/Model/Comment.php
上使用变量$belongsTo
,如下所示:
public $belongsTo = array(
'users' => array(
'foreignKey' => 'idUser'
)
);
在Controller/CommentController中,执行此操作时:
public function index($idPost) {
$this->Comment->recursive = 0;
return $this->Comment->find('all');
}
我得到了这种数组:
[0] => Array
(
[Comment] => Array
(
[id] => 1
[idPost] => 441
[idUser] => 387371023
[comment] => hello word
[created] => 2012-03-01 00:00:00
)
[User] => Array
(
[id] => 1
[username] => myname
)
)
我想要的是获得更多的信息,用户的子类型之一,取决于子类型表上ID的存在
如果它是一个user_web表的id,我希望得到以下信息:
[0] => Array
(
[Comment] => Array
(
[id] => 1
[idPost] => 441
[idUser] => 387371023
[comment] => hello word
[created] => 2012-03-01 00:00:00
)
[User] => Array
(
[id] => 1
[username] => myname
[users_web] => Array
(
[id] => 1
[username] => myName
[password] => XXXXX
[verified] => 1
[created] => 1
)
)
你知道CakePHP是否可以做到这一点吗?
据我所知,使用$hasOne
我只获得了一个级别,我需要两个级别。在您的AppModel中添加
public $actsAs = array('Containable');
在您的索引中:
public function index($idPost) {
return $this->Comment->find('all', array(
'contain' => array('User.UsersWeb')));
}
您的用户模型必须与UsersWeb模型相关联,才能实现此功能
有关完整说明,请参阅
另外,为什么返回控制器索引中的数据?您正在为此使用requestAction吗?为什么不使用分页呢?你真的想在一个页面上显示数百条评论吗
请参见谢谢,它成功了!!关于我为什么还它,这只是一个例子。我通常使用$this->set;)