我安装了ZfcUser并将 first_name/last_name 列添加到我的用户表中。
如何覆盖注册表单并将 first_name/last_name 添加到视图中?
我知道如何覆盖视图。但我猜我还需要覆盖用户控制器或用户表单。这就是我卡住的地方——我不知道如何覆盖控制器/表单。
我已经创建了自己的用户模块,用于覆盖。
谁能给我一个提示?
我安装了ZfcUser并将 first_name/last_name 列添加到我的用户表中。
如何覆盖注册表单并将 first_name/last_name 添加到视图中?
我知道如何覆盖视图。但我猜我还需要覆盖用户控制器或用户表单。这就是我卡住的地方——我不知道如何覆盖控制器/表单。
我已经创建了自己的用户模块,用于覆盖。
谁能给我一个提示?
请注意,在 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 输入元素输出到视图。
我相信您也可以编写自己的实体类,例如 ZfcUser\Entity\User.php 中的实体类,然后确保编辑 Zfcuser 配置。
我喜欢 AlloVince 的回答,实际上我会尝试一下。我正在开发的 SaaS 应用程序将具有动态表单,所以我现在要测试他的