我正在使用CakeDC-Users插件。
<?php
class Post extends AppModel {
public $useTable='posts';
public $belongsTo = array('User');
public $hasMany=array('Comment');
}
我不得不使用paginate:
$allposts=$this->paginate('Post');
我可以通过这种方式获得user_id:
foreach ($allposts as $post) {
debug($post['Post']['user_id']);
但是我需要用户名而不是user_id。我怎样才能获得用户名?
答案 0 :(得分:1)
默认情况下,CakPHP的可容纳功能会隐藏所有关联的模型:http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html
如果您只想添加关联模型的一个字段,可以使用以下语法:
$allposts = $this->Post->find('all', array('contain' => 'User.username'));
或者使用paginate在你的控制器类中使用它:(http://book.cakephp.org/1.3/en/view/1232/Controller-Setup)
var $paginate = array('contain' => 'User.username');
请尝试以下操作来访问它:
$post['User']['username'];
答案 1 :(得分:0)
尝试将递归属性设置为2:
$this->Post->recursive = 2;
$allposts = $this->paginate('Post');
debug($allposts);
$allposts
应该包含每个帖子及其所属用户。