symfony PHPフレームワークpart2 (531レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

242: nobodyさん [] 2010/10/19(火) 02:27:53 ID:0CIYXc+U(1/2) AAS
ユーザー情報を持つUserAccountテーブルと、そのIDをカラムに持つBlogテーブルをリレーションさせておくと、
フォームの作成で下記のようなファイルが生成されます。

これが、ユーザー数が多くて、かつuser_idをunset()して使うケースではかなり無駄な気がします。
手作業でsetup()を上書きして、widgetをsfWidgetFormInputText、
validatorをsfValidatorIntegerに変える、という感じに書き換えたいのですが、
スキーマのオプションとかでsfWidgetFormDoctrineChoice()&$this->getRelatedModelName()を
使わないようにはできないんでしょうか?

$this->getRelatedModelName()の呼び出しは1回で済むはずなのに無駄なコードだし。。。
ユーザーが1万人になったら、フォームの表示のたびに2万件のレコード引っ張ってくるつもり?

abstract class BaseBlogForm extends BaseFormDoctrine
{
 public function setup()
 {
  $this->setWidgets(array(
   'id'          => new sfWidgetFormInputHidden(),
   'user_id'       => new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('UserAccount'), 'add_empty' => false)),
  ));

  $this->setValidators(array(
   'id'          => new sfValidatorChoice(array('choices' => array($this->getObject()->get('id')), 'empty_value' => $this->getObject()->get('id'), 'required' => false)),
   'user_id'       => new sfValidatorDoctrineChoice(array('model' => $this->getRelatedModelName('UserAccount'))),
  ));
243: nobodyさん [] 2010/10/19(火) 21:06:26 ID:0CIYXc+U(2/2) AAS
sfWidgetFormDoctrineChoice::getChoices()
が呼ばれるのはrender()の時だけ?
大ポカだった。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.140s*