Symfonyに挑戦13「Jobeet 7日目」
カテゴリページのルーティングルールを作る
- jobeet/apps/frontend/config/routing.ymlの先頭にcategoryルールを追加
- jobeet/lib/model/JobeetCategory.phpにgetSlug()メソッドを追加
【覚書】
- 新しい機能を実装するときは最初にURLを決めてルーティングを作ることは良い習慣
カテゴリページへのリンクを表示する
- jobeet/apps/frontend/modules/job/templates/indexSuccess.phpを編集
- jobeet/lib/model/JobeetCategory.phpにcountActiveJobs()メソッドを追加
- jobeet/lib/model/JobeetJobPeer.phpにをごっそり書き換え
- http://jobeet.local/にアクセス。右下に「AND 22 MORE...」と表示された
【覚書】
- 結果数を数えるだけならdoCount()が速い
カテゴリモジュールを作る
- generate:moduleでcategoryモジュールを生成
- jobeet/config/schema.ymlのjobeet_categoryテーブルにslugを追加
- jobeet/lib/model/JobeetCategory.phpのgetSlug()メソッドを削除し、代わりにsetName()メソッドを追加
- propel:build-all-loadタスクを使ってータベースにフィクスチャを投入
- jobeet/apps/frontend/modules/category/actions/actions.class.phpを編集
- jobeet/apps/frontend/modules/category/templates/indexSuccess.phpをshowSuccess.phpにリネームして編集
jobリストのtable部分をパーシャル化
- jobeet/apps/frontend/modules/job/templates/_list.phpを作成して内容をごっそりペースト
- jobeet/apps/frontend/modules/job/templates/indexSuccess.phpのテーブル部分をパーシャル読み込みに変更
- jobeet/apps/frontend/modules/category/templates/showSuccess.phpのテーブル部分をパーシャル読み込みに変更
【覚書】
- テンプレートの一部で繰り返し使うコードがあるときは、パーシャルを作って再利用するといい
リストのページ分割
- jobeet/apps/frontend/modules/category/actions/actions.class.phpを編集
- jobeet/apps/frontend/config/app.ymlを編集
- jobeet/lib/model/JobeetCategory.phpにgetActiveJobsCriteria()メソッドを追加
- jobeet/lib/model/JobeetCategory.phpのcountActiveJobs()メソッドとgetActiveJobs()メソッドを修正
- jobeet/apps/frontend/modules/category/templates/showSuccess.phpを編集
【覚書】
- ページを分割する機能はsymfonyについているsfPropelPagerを使えば楽
最後にsymfony ccしてhttp://jobeet.local/category/programmingにアクセス。ページが表示され、下段にページャーが付いていたら完了。