難しすぎる。
findallするだけじゃオナニーしてるのと変わらない。
paginateをしなければ・・・と思ってやってもこれまた超絶うんこむず。
ということで、
moterias テーブル
id
name
tag_names テーブル
id
title
user_tags テーブル
id
user_id
tagname_id
という三角関係だった場合に、
[ イケメン ]タグを持っているユーザーのみ読み出したい
コントローラー
$joins = array(
array(
'table' => 'mntra_usertags',
'alias' => 'UserTag',
'type' => 'INNER',
'conditions' => 'UserTag.user_id = Moteria.id'
),
array(
'table' => 'mntra_tagnames',
'alias' => 'Tagname',
'type' => 'INNER',
'conditions' => 'Tagname.id = UserTag.tagname_id'
)
);
$conditions = array(
'OR' => array(
'Tagname.title LIKE' => '%イケメン%'
)
);
$this->paginate = array(
'joins' => $joins,
'conditions' => $conditions,
'group' => array('Moteria.id')
);
$res = $this->paginate('Moteria');
これでいける。
joins の tableには prefix を含めて書く必要がある。
でもって上記の処理をしたら以下の結果になる。
Array
(
[0] => Array
(
[Moteria] => Array
(
[id] => 150
[created] => 2006-01-27 01:27:26
[modified] => 2010-06-28 14:18:54
[name] => 知幸
[sex] => 0
[email] => fefefe
[pass] => 5738
[price] => 0
[zipcode] => 0
[state] => 東京都
[city] => 千代田区
[place] => 0
[url] =>
[birthday] => 0000-00-00 00:00:00
[body] =>
[uid] => 25001032210649_mj.ezweb.ne.jp
[point] => 0
[okgold] => 0
[okgold_lastweek] => 0
[okgold_thisweek] => 0
[mode] => 0
[ngemail] => 0
[endtime] => 0000-00-00 00:00:00
[fukugyou] => 0
[x] => 139.7535951
[y] => 35.6940027
[rand] => 0
)
[Attachment] => Array
(
)
[Usertag] => Array
(
[0] => Array
(
[id] => 170
[user_id] => 150
[tagname_id] => 81
[created] => 0000-00-00
)
)
)
[1] => Array
(
[Moteria] => Array
(
[id] => 155
[created] => 2010-02-19 17:20:25
[modified] => 2010-06-28 14:18:54
[name] => うう
[sex] => 0
[email] => aaaa
[pass] => 5738
[price] => 0
[zipcode] => 0
[state] => 愛知
[city] => 一宮市
[place] => 0
[url] =>
[birthday] => 0000-00-00 00:00:00
[body] =>
[uid] =>
[point] => 0
[okgold] => 0
[okgold_lastweek] => 0
[okgold_thisweek] => 0
[mode] => 1
[ngemail] => 0
[endtime] => 0000-00-00 00:00:00
[fukugyou] => 0
[x] => 140.3704497
[y] => 35.3693829
[rand] => 0
)
[Attachment] => Array
(
)
[Usertag] => Array
(
[0] => Array
(
[id] => 169
[user_id] => 155
[tagname_id] => 81
[created] => 0000-00-00
)
)
)
Attachment含まれてるけど、みんなユーザータグ持ってるでしょ。
で、とりあえずこれで下準備はオッケー。
まだページカウントをやらんといかん。
もう死にそう。
参考:
http://www.qudan.net/?p=224
ありがとうございました!



