我安装了 ZfcUser 并将first_name / last_name列添加到我的用户表中。
如何覆盖注册表单并将first_name / last_name添加到视图中?
我知道如何覆盖视图。但我猜我还需要覆盖用户控制器或用户表单。这就是我被困的地方 - 我不知道如何覆盖控制器/表格。
我已经创建了自己的用户模块,用于覆盖。
任何人都可以给我一个提示吗?
答案 0 :(得分: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输入元素输出到视图。
答案 1 :(得分:0)
我相信您也可以编写自己的实体类,如ZfcUser \ Entity \ User.php中的实体类,然后确保编辑Zfcuser配置。
我喜欢AlloVince的答案,我实际上是要尝试一下。我正在处理的SaaS应用程序将具有动态表单,因此我将测试他现在的