■
コメント残そうとしたのですが、何故か投稿できなかった?のでこっちに残しておきます。
symfonyでフォームの内容を処理するようなプログラムを書こうとすると、
$model->setValue1($this->getRequestPamameter(‘value1′)); $model->setValue2($this->getRequestPamameter(‘value2′)); $model->setValue3($this->getRequestPamameter(‘value3′)); (以下続く)のように、リクエストを延々セットするようなコードが出来上がることがあります。
Mixinによる実装方法が紹介されていましたが、
Definitive GuideのFormの章にこんなコードありました。
getRequestParameter()の値をつかってるぽいです。
(時間がなくて試せてないですが。。)
$author->fromArray( $this->getRequest()->getParameterHolder()->getAll(), BasePeer::TYPE_FIELDNAME );
せっかくなのでソースをちょっとばかり追ってみると、第2引数でkey名を指定できるようです。
BasePeer::TYPE_PHPNAME (AuthorId) BasePeer::TYPE_COLNAME (book.AUTHOR_ID) BasePeer::TYPE_FIELDNAME (author_id) BasePeer::TYPE_NUM ('4'などのインデックス番号)
デフォルトはTYPE_PHPNAMEになってました。
あくまでも、モデルの定義をそのまま利用する場合に限りますが
指定するだけでいいので便利ですね。
-
- 追記
テストしてみてるのですが、うまく動かないですねぇ。。。
-
- 追記2
BasePeer::TYPE_FIELDNAME でやるとうまくいきました。。というわけで修正。
ってほんとにあってるのかいな。。