0

もう 1 つのかなり基本的な質問だと思いますが、ぐるぐる回ってアイデアが尽きてしまったように感じます (笑)。

特定のコメントを書いたユーザーの名前、アバターなどを表示できるようにする必要があるページネーション (Ajax 経由) を使用してコメント システムを作成しようとしています。簡単に聞こえますよね?

これまでのところ、対応するユーザー情報を取得する方法を見つけることができず、ドキュメントにも役立つ情報が見つかりませんでした。

これまでのページネーションコードは次のとおりです。

$this->paginate['Comment'] = array(
    'conditions'=>array('Entry.id'=>$id),
    'contain' => array('Entry', 'User'=>array('avatar', 'username') ),
    'limit' => 10
);
$comments = $this->paginate('Comment');
$this->set(compact('comments'));

そのため、contain を使用してユーザー モデルのデータを取得し、次のようにビューに表示しようとしました。

echo $comment['User']['username'];
echo $comment['User']['avatar'];

しかし、そのようにすると、もちろん $id に対応するユーザーの情報が表示されます...

ただし、現在のコメントの外部キー user_id からユーザー情報を取得する必要があります。そして、現時点ではそれを行う方法が途方に暮れています...どんな助けも大歓迎です。前もって感謝します!

4

2 に答える 2

0

私が正しく覚えていれば

'contain' => array('Entry', 'User.avatar,User.username')),

トリックを行う必要があります

于 2011-10-23T12:34:52.787 に答える
0

よし、解決した…

Comment モデルに適切なforeignKeyを追加する必要がありました。

var $belongsTo = array(
'Entry' => array('className' => 'Entry', 'foreignKey' => 'page_id'),
'User' => array('className' => 'User', 'foreignKey' => 'user_id'),
);

これで、適切なユーザー情報が取得されます。

于 2011-10-23T13:36:09.160 に答える