[EC-CUBE]createBuilderメソッド

EC-CUBEのFormでよく見かけるcreateBuilderメソッドを調べた。

例えば管理画面の商品を扱うコントローラ内で下記のような使われ方をしている。

$builder = $app['form.factory']
            ->createBuilder('admin_product', $Product);

このcreateBuilderメソッドに関しては、src/Eccube/Application/ApplicationTrait.phpに下記の記述で定義されている。

/** FormTrait */
    /**
     * Creates and returns a form builder instance
     *
     * @param mixed $data The initial data for the form
     * @param array $options Options for the form
     *
     * @return FormBuilder
     */
    public function form($data = null, array $options = array())
    {
        return $this['form.factory']->createBuilder('form', $data, $options);
    }

第1引数にはFormTypeを指定する。これでFormTypeで定義した項目が使用できるようになる。(上の例だとhtmlのinputのnameに”form[~~]”という形式で指定される)
第2引数にはデータ。このデータをDBに保存したりする。
第3引数のオプションには、ラベルやEntityとのマッピングを定義する。

参考

プラグインによるフォームの追加、変更

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

14 + ten =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください