嗨,我正在尝试使用Zend Framwork 2的ZfcUser模块编写用户注册表单,并希望在添加更多用户字段时获得一些最佳实践方面的建议。

到目前为止,我已经创建了自己的名为“WbxUser”的模块,并且如modules wiki pages所述,我已经通过使用模块自举函数中的事件管理器,将名为“userlastname”的自定义字段添加到ZfcUser的注册表单中。

代码:

//WbxUser.Module.php

namespace WbxUser;

use Zend\Mvc\MvcEvent;


class Module {
    public function onBootstrap(MvcEvent $e){
        $events = $e->getApplication()->getEventManager()->getSharedManager();
        $events->attach('ZfcUser\Form\Register','init', function($e) {
            $form = $e->getTarget();
            $form->add(array(
                    'name' => 'userlastname',
                    'attributes' => array(
                            'type'  => 'text',
                    ),
                    'options' => array(
                            'label' => 'Last Name',
                    ),
            ));
            // Do what you please with the form instance ($form)
        });

        $events->attach('ZfcUser\Form\RegisterFilter','init', function($e) {
            $filter = $e->getTarget();

            $filter->add(array(
                'name'       => 'userlastname',
                'required'   => true,
                'filters'  => array(
                        array('name' => 'StripTags'),
                        array('name' => 'StringTrim'),
                ),
                'validators' => array(
                    array(
                        'name'    => 'StringLength',
                        'options' => array(
                            'min' => 3,
                            'max' => 255,
                        ),
                    ),
                ),
           ));
        });
    }

    public function getConfig(){
        return array();
    }

    public function getAutoloaderConfig(){
        return array();
    }
}

但是在此之后,我对在哪里/如何编写代码以保存新字段正在收集的额外数据方面有些迷惑。
  • 这是我可以触发其他字段的保存例程的事件吗https://github.com/ZF-Commons/ZfcUser/wiki/How-to-perform-a-custom-action-when-a-new-user-account-is-created
  • 我是否应该编写自己的WbxUser模型来扩展ZfcUser\Entity\User.php以添加新字段

  • 我是ZF和MVC的新手,因此对于在写方向上进行微调非常适合。

    最佳答案

    这个似乎更直观

    http://juriansluiman.nl/en/article/117/use-3rd-party-modules-in-zend-framework-2

    关于php - 使用Zend Framework 2扩展ZfcUser,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13630526/

    10-16 06:44