2

FormFactory をオーバーライドするのに助けが必要です。私の目標は、プロファイルを変更することです。Facebookログインも使用しているので、メール、ユーザー名、パスワードを変更させたくありません。そのため、バンドル内の ProfileController を使用して、現在のユーザーを ProfileFormType クラスに引き渡します。

私がやろうとしているのは、独自の FormFactory を実装することです。そのため、ユーザーを設定して、呼び出し内のオプション配列に入れることができます

return $this->formFactory->createNamed($this->name, $this->type, null, array('validation_groups' => $this->validationGroups, 'user' => $this->user));

これを実現するには、sevices.yml で FormFactory を定義する必要があります。

以下は FOSUserBundle の元のものです。

<service id="fos_user.profile.form.factory" class="FOS\UserBundle\Form\Factory\FormFactory">
        <argument type="service" id="form.factory" />
        <argument>%fos_user.profile.form.name%</argument>
        <argument>%fos_user.profile.form.type%</argument>
        <argument>%fos_user.profile.form.validation_groups%</argument>
    </service>

エイリアスの使用法を完全に理解していないため、これを yml に変換するのは困難です。

それを正しく定義するのを手伝ってもらえますか?何かのようなもの

skt_user.profile.form.factory:
    class: SKT\UserBundle\Form\Factory\FormFactory
    arguments: ???
4

1 に答える 1