Posts と Likes の 2 つのテーブルがあります。
そして、現在ログインしているユーザーが気に入っている投稿を一覧表示しようとしています。メソッドは次のようになります。
$following = $this->Follower->listFollowing($this->Auth->user('id'));
$this->paginate = array('limit'=>20,'conditions'=>array('Post.id'=>array($following['Follower']['post_id']),'Post.status'=>array(1,2)),'order'=>array('Post.datetime'=>'desc'),
'contain'=>array('User','Answer'=>array('User'),'Tag'));
$this->set('posts',$this->paginate());
したがって、基本的に私がやろうとしているのは、最初にユーザーに一致するすべての行について次の (いいね) テーブルをクエリし、検索クエリでこの投稿 ID の配列を使用して、クエリに含まれていた投稿を一覧表示することです。
Follower モデルの listFollowing メソッドは次のようになります。
public function listFollowing($user_id)
{
return $this->find('all', array(
'conditions' => array('Follower.user_id'=>$user_id)
));
}
現在、次のようなエラーが発生Undefined index: Follower [APP/Controller/PostsController.php, line 94]
しています。検索クエリで次の投稿 ID のリストを渡そうとしている方法が間違っていると思います。
誰でも助けることができますか?ありがとう
編集: $following でデバッグを行うと、次のようになります。
array(
(int) 0 => array(
'Follower' => array(
'id' => '4',
'user_id' => '6',
'post_id' => '136'
),
'User' => array(
'password' => '*****',
'id' => '6',
'username' => 'driz',
'email' => '######'
),
'Post' => array(
'id' => '136',
'user_id' => '8',
'datetime' => '2012-09-11 15:49:52',
'modified' => '2012-09-16 15:31:38',
'title' => 'Test Content',
'slug' => 'Test_content',
'content' => 'Test Content',
'status' => '1'
)
),
(int) 1 => array(
'Follower' => array(
'id' => '5',
'user_id' => '6',
'post_id' => '133'
),
'User' => array(
'password' => '*****',
'id' => '6',
'username' => 'driz',
'email' => '######'
),
'Post' => array(
'id' => '134',
'user_id' => '8',
'datetime' => '2012-09-11 15:49:52',
'modified' => '2012-09-16 15:31:38',
'title' => 'Test Content 2',
'slug' => 'Test_content_2',
'content' => 'Test Content 2',
'status' => '1'
)
)
)