友達の日記一覧を作る(CakePHP修行 #42)

SPONSORED LINK

Pocket

さて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に該当する日記を引っ張ってきています。ついでに作成日順に並べ替えてみました。

できあがったのはこちら。

home.gif

↑ 無事に友達の日記を引っ張ってこれました。数が多くなってきたときの処理作らなくちゃなー。

さて、こんなところですかね・・・次は何だろ。

友達の招待&承認系の処理か・・・これが鬼門。

※ CakePHP修業は百式管理人がSNSっぽいものをCakePHPで作ろうとして挫折するまでの日記です。前回までのあらすじはこちらへ。

ツイッターもやっています!

SPONSORED LINK

  1. No comments yet.

  1. No trackbacks yet.