Modelのバーチャルフィールドに設定しちゃっておくとラク。
public $virtualFields = array( 'tags' => '(select group_concat(Tag.name) from tags as Tag where Post.id = Tag.post_id)' );
負荷とか考えて普段ははずしておきたい場合は動的に $Model->virtualFieldsは動的に変更できるのでその都度設定すれば問題なさそうです。
ただ、FIND_IN_SETでの検索が $Model->find() の ‘conditions’パラーメータでは実現できなかった。なにか方法あるのかなぁ。
今回は単純な Yearな数字だったたので 無理やり LIke %%で処理 (うーん。
コメントを残す