本日の作業

今日は少し寒いながらも息子二人を連れて近所の歴史的名勝に散歩。家から徒歩のみでこういう場所に行けるのはすごくうれしい。

息子達は疲れたようでグズりながらも寝たので作業を進めよう。本日の課題はタグページ。これまではタグ名をダイレクトにクエリにしていたけど、タグを別テーブルにしてHABTM化したのでタグidを使ってサーチするようにする。なお、本件を作り込めば大枠の機能を網羅したことになるため、既存システムへのリプレースがぐっと近づく。

さっそくつまづいた

HABTMしてる関連テーブル側がタグなので、タグを検索条件にするのはちょっとしんどいみたい。Entrys_controllerではなくTags_controllerに今回の検索を実装すればいいような気もするけど、多分Entryをベースとしたリストにするのに一苦労しそうなので、やっぱりそれは正しくないんだろう。

と悩んでいたら下記ページを発見。
http://www.exgear.jp/blog/2009/06/cakephp-habtmモデルの検索/
要するに、無理せずに単純にfind二回やった方が楽だよとのこと。

参考にしてトライしてみるもどーもうまくいかない。サンプルでは、HABTMの要となる中間テーブルのモデルをfindしているが、同じようにやってもそんなモデルないよとエラーが出てしまう。

案外すぐに解決

pr($this)して中身をじっくり読んでみたところ、ちゃんとモデル化されているが名前が「EntryTag」ではなく「EntriesTag」であることを発見!そこを直したらサンプルどおりうまく動きました。やった!!