我确实读过这个答案ZF2,使用供应商模块的表单类的最佳实践是什么?. 所以主要清楚如何更改供应商模块的可配置部分,但是如果在 zfcUser 模块中我想向实体/用户添加新功能该怎么办?
简而言之,我想检查用户角色,我已添加到 DB 字段,最好的方法是什么?也许我应该在其他地方做而不是在 zfcUSer 如果是这样的话在哪里?
我确实读过这个答案ZF2,使用供应商模块的表单类的最佳实践是什么?. 所以主要清楚如何更改供应商模块的可配置部分,但是如果在 zfcUser 模块中我想向实体/用户添加新功能该怎么办?
简而言之,我想检查用户角色,我已添加到 DB 字段,最好的方法是什么?也许我应该在其他地方做而不是在 zfcUSer 如果是这样的话在哪里?
看一眼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 以匹配您要使用的实体。
我不会声称这是最佳实践,但这就是我设法处理这种情况的方式!首先非常感谢回答这个问题ZF2: Custom user mapper for ZfcUser module。
所以我做了:
zfcUser/Entity
在自动加载中添加了配置zfc-user.global.php
:
'zfcuser' => 数组( 'tableName' => '用户', 'user_entity_class' => '应用程序\实体\用户' ),
Entity\User
Entity和 Mapper 子文件夹中Mapper\User
。Mapper\Hydrator
src/Application
Application\Entity
和Application\Mapper
将此配置添加到getServiceConfig
my 的功能中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
的 as extends \ZfcUser\Entity\User implements \ZfcUser\Entity\UserInterface
。