1

ZfcUserをインストールし、first_name/last_name列をユーザーテーブルに追加しました。

登録フォームを上書きして、ビューにfirst_name / last_nameを追加するにはどうすればよいですか?

ビューをオーバーライドする方法を知っています。しかし、私はユーザーコントローラーまたはユーザーフォームのいずれかをオーバーライドする必要があると推測しています。そして、それは私が立ち往生しているところです-私はコントローラー/フォームをオーバーライドする方法がわかりません。

オーバーライドに使用する独自のユーザーモジュールをすでに作成しました。

誰かが私にヒントを与えることができますか?

4

2 に答える 2

2

ZfcUser\Form\Register では、__construct() メソッドで次のイベント呼び出しがあることに注意してください。

        $this->getEventManager()->trigger('init', $this);

したがって、Register フォームを拡張して、first_name/last_name 要素を次のように追加できます。

class MyForm extends ZfcUser\Form\Register {
    public function init(){
        $this->add(array(
            'name' => 'first_name',
            'options' => array(
                'label' => 'First Name',
            ),
            'attributes' => array(
                'type' => 'text'
            ),
        ));

        $this->add(array(
            'name' => 'last_name',
            'options' => array(
                'label' => 'Last Name',
            ),
            'attributes' => array(
                'type' => 'text'
            ),
        ));
    }
}

次に、フォームを Module.php のサービスとして追加できます

public function getServiceConfig()
{
    return array(
        'factories' => array(
            'myform' => function ($sm) {
                $form = new MyForm(null, $options);
                return $form;
            },
        ),
    );
}

最後に、あなたが言ったように、first_name/last_name 入力要素をビューに出力する必要もあります。

于 2012-09-29T02:16:45.987 に答える
0

ZfcUser\Entity\User.php にあるような独自のエンティティ クラスを作成してから、Zfcuser の構成を編集することもできます。

私はAlloVinceの答えが好きで、実際に試してみるつもりです. 私が取り組んでいる SaaS アプリには動的なフォームがあるので、今すぐテストします

于 2012-09-29T20:48:22.573 に答える