友達の日記一覧を作る(CakePHP修行 #42)
August 2, 2007 6:37 PM written by Gen Taguchi
さてmixiの中の人が「これが一番重いんですよー」と昔言っていたような気がする「友達の日記一覧」を作ります。ちょっと悩んだ。UserとFriendが紐づいているからそこからPostまで見にいけるか、など試行錯誤しましたが、面倒になったので二段階で処理しました。
これって一段階で処理できるようなものなのかな?アソシエーションと$recursiveとか使えばひょっとしてできる?(>青い人)。
ではコード。
// friends' posts
$my_pals = array();
foreach ($this->Friend->findAll(array('Friend.user_id'=>$me['User']['id'],'Friend.status'=>1),'friend_user_id') as $pal) {
$my_pals[] = $pal['Friend']['friend_user_id'];
}
$this->set('posts', $this->Post->findAll(aa("Post.user_id", $my_pals),null,'Post.created DESC'));
$my_palsにまずは友達のIDを突っ込み、そのIDに該当する日記を引っ張ってきています。ついでに作成日順に並べ替えてみました。
できあがったのはこちら。

↑ 無事に友達の日記を引っ張ってこれました。数が多くなってきたときの処理作らなくちゃなー。
さて、こんなところですかね・・・次は何だろ。
友達の招待&承認系の処理か・・・これが鬼門。
※ CakePHP修業は百式管理人がSNSっぽいものをCakePHPで作ろうとして挫折するまでの日記です。前回までのあらすじはこちらへ。
Info: CakePHP修行! |
固定リンク |
コメント (0) |
トラックバック (0) |
↑


