0

私は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を! – mark

+0

私はあなたが何を言っているのか理解できません。あなたは精緻化できますか? – shibly

答えて

1

CakPHPのcontainble機能は、デフォルトでは、関連するすべてのモデルを非表示にします。

:あなたはこの構文を使用することができます関連するモデルの一つだけのフィールドを追加したい場合は 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']; 
+0

私は['username']を得ることができません['user_id']、私は 'public $ actsAs = array( 'Containable');を投稿モデルで持っています。 – shibly

+0

この情報を質問に追加するとよいでしょう。 – flo

+0

実際には、「Containable」についての部分を意味しました。これは、検索の仕方が変わるからです。 – flo

0

は2に再帰的なプロパティを設定してみてください:

$this->Post->recursive = 2; 
$allposts = $this->paginate('Post'); 
debug($allposts); 

$allpostsすべてのポストを含まなければならないし、それがユーザーに所属です。

参照:Cakephp pagination on recursive conditions

関連する問題