2011-07-18 6 views
1

私はPropelとSymfonyを使ってBaseMeetingMeetingsFormというフォームを生成しています。symfonyカスタムフォームフィールドの追加と処理

MeetingMeetingsForm.class.phpで

は以下のconfigureメソッド持っているI:MeetingMeetings.phpで

public function configure() { 
    $this->useFields(array('name', 'group_id', 'location', 'start', 'length')); 

    $this->widgetSchema['invited'] = new myWidgetFormTokenAutocompleter(array("url"=>"/user/json")); 
} 

メソッドを保存し、私は、単に次のとおりです。ただし

public function save(PropelPDO $con = null) { 
    $this->setOwnerId(Meeting::getUserId()); 

    return parent::save($con); 
    } 

推進する私のカスタムについて知りませんそれで何もしません。このフォームフィールドを扱うことができる特別なセクションをどこにどのように置くかは、データベースへの単純な保存ではなく、入力前に特別に入力を処理する必要があることに注意してください。あなたの時間とアドバイスを

おかげで、

+0

フォームデータの読み取り/処理を行うコードをご記入ください。 – hakre

+0

どこにもわからない限り、symfonyはどこかにありますか? –

+1

さて、それはあなたが欠けている部分です。抽象化による標準処理が、自動的に取得したいと思うものすべてではない場合は、独自のフォームデータを処理する必要があります。 http://www.symfony-project.org/jobeet/1_4/Propel/en/10を見て、* The Form Action *をスクロールしてください。それはあなたが探している情報を持っている必要があります。 – hakre

答えて

1

あなたがバリデータを定義する(および/または独自に作成)する必要があります。バリデーターclean()メソッドは、永続化する必要がある値を返します。

Doctrine(私はPropelを知らない)では、フォーム上のdoUpdateObject()が呼び出され、フォームのfromArray($arr)関数が呼び出されます。

既にモデルのプロパティであれば、バリデーターを作成するだけで済みます。より複雑なウィジェットの場合は、フォームにロジックを追加する必要があります。

関連する問題