Symfonyに挑戦16「Jobeet 10日目」
Propel フォーム
- データベースに保存するためのフォーム
- propel:build-allタスクを起動したときにクラスが自動で生成される
- schema.ymlで作ったテーブル毎に用意される
- 生成される場所はjobeet/lib/form/
求人フォームをカスタマイズ
- jobeet/apps/frontend/templates/layout.phpの「Post a Job」リンクを変更
- jobeet/lib/form/JobeetJobForm.class.phpのconfigure()メソッドを追加し、unset()でフォームにいらない項目を削除
- jobeet/lib/form/JobeetJobForm.class.phpにemailのバリデータを追加
- jobeet/lib/model/JobeetJobPeer.phpにどこからでも使えるようにpublicで選択リストデータを追加
- jobeet/lib/form/JobeetJobForm.class.phpにtype項目を追加し、上の$typeを選択項目に設定。
- jobeet/lib/form/JobeetJobForm.class.phpにtypeのバリデータを追加
- jobeet/lib/form/JobeetJobForm.class.phpにlogo項目を追加
- jobeet/lib/form/JobeetJobForm.class.phpにsetLabels()で各項目のラベル名を設定
- jobeet/lib/form/JobeetJobForm.class.phpにlogoのバリデータを追加
- jobeet/apps/frontend/modules/job/templates/showSuccess.phpのロゴイメージを変更
- jobeet/lib/form/JobeetJobForm.class.phpにヘルプ項目を追加
- jobeet/apps/frontend/modules/job/templates/newSuccess.phpを変更
- jobeet/apps/frontend/modules/job/templates/_form.phpを変更
- jobeet/apps/frontend/modules/job/actions/actions.class.phpのexecuteNew()以下の各メソッドを変更
- jobeet/apps/frontend/modules/job/actions/actions.class.phpのexecuteNew()メソッドにタイプ項目のデフォルト値を設定
- jobeet/lib/model/JobeetJob.phpのsaveメソッドにtokenを一緒に保存するように変更
- jobeet/lib/form/JobeetJobForm.class.phpのunset()にtokenを追加してフォームからtokenを削除
- jobeet/apps/frontend/config/routing.ymlのjob項目を変更
- jobeet/apps/frontend/modules/job/templates/showSuccess.phpのEditリンクを修正
- jobeet/apps/frontend/modules/job/templates/showSuccess.phpの上の方に管理者用のメニューバーを配置
- jobeet/apps/frontend/modules/job/templates/_admin.phpを作成しコードをコピペ(管理者用のメニューバーパーシャル)
- jobeet/lib/model/JobeetJob.phpに管理用のメソッドを追加
- jobeet/apps/frontend/config/routing.ymlのjob項目を変更
- jobeet/apps/frontend/modules/job/templates/_admin.phpパーシャルのPublishリンクを修正
- jobeet/apps/frontend/modules/job/actions/actions.class.phpにpublishアクションのexecutePublish()メソッドを追加
- jobeet/lib/model/JobeetJob.phpにpublishメソッドを追加
- jobeet/lib/model/JobeetJobPeer.phpのaddActiveJobsCriteria()メソッドのcriteriaの条件を追加
- 試しにPOST A JOBからJobを投稿してみるとちゃんと投稿できた。
【覚書】
- unset()で表示したくないフォーム項目を削除
- unset()でフィールドの項目を削除したら、表示される入力フィールドと共にバリデータも削除される。
- フォームに依存するcssとjavascriptを使うことがある場合に備え、フォームパーシャルには下記を常に書いておけばいい。
<?php include_stylesheets_for_form($form) ?> <?php include_javascripts_for_form($form) ?>