コメント残そうとしたのですが、何故か投稿できなかった?のでこっちに残しておきます。

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 でやるとうまくいきました。。というわけで修正。
ってほんとにあってるのかいな。。