1

我安装了ZfcUser并将 first_name/last_name 列添加到我的用户表中。

如何覆盖注册表单并将 first_name/last_name 添加到视图中?

我知道如何覆盖视图。但我猜我还需要覆盖用户控制器或用户表单。这就是我卡住的地方——我不知道如何覆盖控制器/表单。

我已经创建了自己的用户模块,用于覆盖。

谁能给我一个提示?

4

2 回答 2

2

请注意,在 ZfcUser\Form\Register 中,在 __construct() 方法中有一个事件调用,即:

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

因此,您可以扩展注册表并添加您的 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 回答