我确实读过这个答案ZF2, what's the best practice for working with Vendor Module's Form classes?。因此,主要清楚如何更改供应商模块的可配置部分,但如果在zfcUser模块中我想为实体/用户添加新功能,我该怎么办?
简而言之,我想检查用户角色,我已添加到DB字段,最好的方法是什么?也许我应该在其他地方做,而不是在zfcUSer,如果是这样的话?
答案 0 :(得分:6)
查看ZfcUser/config/zfcuser.global.php.dist
在那里你会看到这个
/**
* User Model Entity Class
*
* Name of Entity class to use. Useful for using your own entity class
* instead of the default one provided. Default is ZfcUser\Entity\User.
* The entity class should implement ZfcUser\Entity\UserInterface
*/
//'user_entity_class' => 'ZfcUser\Entity\User',
说明很简单,将文件复制到./config/autoload/zfcuser.global.php
,确保您的实体类实现ZfcUser\Entity\UserInterface
,取消注释该行并更改FQCN以匹配您要使用的实体。
答案 1 :(得分:2)
我不会声称这是一种最佳做法,但这就是我设法处理这种情况的方法! 首先 - 非常感谢回答ZF2: Custom user mapper for ZfcUser module。
所以,我做了:
zfcUser/Entity
自动加载中添加了zfc-user.global.php
的配置:
'zfcuser' => array( 'tableName' => 'users', 'user_entity_class' => 'Application\Entity\User' ),
Entity\User
,Mapper\User
和Mapper\Hydrator
的课程添加到我的src/Application
实体和映射器子文件夹中。Application\Entity
和Application\Mapper
将此配置添加到getServiceConfig
的{{1}}功能:
Module.php
'factories' => [
'zfcuser_user_mapper' => function ($sm) {
$mapper = new Mapper\User();
$mapper->setDbAdapter($sm->get('Zend\Db\Adapter\Adapter'));
$mapper->setEntityPrototype(new Entity\User());
$mapper->setHydrator(new Mapper\UserHydrator());
return $mapper;
},
]
,并将ZfcUSer
作为Entity\User
启动。