- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我添加了模块 ZfcUser在我的 Zend Framework 2 应用程序上。但是我必须使用现有的数据库表,它的列名与 ZfcUser 的默认表结构略有不同。
在ZfcUser wiki page它说如果我的模型不符合提供的接口(interface),则可以使用自定义映射器。由于我的数据库表与默认表不同,因此我的用户实体类也不同于标准 ZfcUser\Entity\User。但我可以告诉 ZfcUser 轻松地使用我自己的类通过覆盖文件 config/autoload/zfcuser.global.php 中的设置:
'user_entity_class' => 'MyApp\Entity\MyUser',
但到目前为止,我还没有找到告诉 ZfcUser 使用我的映射器类的简单方法。
我只发现映射器是由 ZfcUser\Module::getServiceConfig() 创建的在其中,我可以看到映射器是从其工厂函数返回的:
// ...
public function getServiceConfig()
{
return array(
// ...
'factories' => array(
// ...
'zfcuser_user_mapper' => function ($sm) {
$options = $sm->get('zfcuser_module_options');
$mapper = new Mapper\User();
$mapper->setDbAdapter($sm->get('zfcuser_zend_db_adapter'));
$entityClass = $options->getUserEntityClass();
$mapper->setEntityPrototype(new $entityClass);
$mapper->setHydrator(new Mapper\UserHydrator());
return $mapper;
},
// ...
有没有办法让 ZfcUser 使用我的自定义用户映射器类?
最佳答案
我遇到了和你一样的问题,但最终还是成功登录了我的应用程序。我听从了 Rob 的建议,在我现有的用户模块中创建了我自己的服务工厂。不幸的是,伯恩哈德也在现场。你有点必须深入研究 ZfcUser 源代码才能让它工作。我正在处理的项目现在有一个 MSSQL 服务器,我必须说处理事情很困难。我最终只调整了 ZfcUser 源代码中的一个函数来使登录页面正常工作。
我只需要当前应用程序的登录功能,但即将进行的项目更多是角色驱动的。我一直在寻找不会太复杂而无法快速连接的东西,同时为 future 提供更多选择和可能性。
这是我现在所做的以及我学到的:
我将 Entity 和 Mapper 文件夹从 ZfcUser 目录复制到我现有的 b2bUser(我的模块)文件夹中。一切...甚至 Mapper 中的 Exception 文件夹。可能没有必要,但我没有心情弄清楚依赖关系。
在 zfcuser.global.php 文件中,我的事件配置如下所示:
'user_entity_class' => 'b2bUser\Entity\User',
'enable_registration' => false,
'enable_username' => true,
'auth_identity_fields' => array( 'username' ),
'login_redirect_route' => 'home',
'enable_user_state' => false,
我将其余设置保留为默认设置。我从身份验证中删除了电子邮件选项,因为他们不会使用电子邮件地址登录系统。 user_entity_class
是我复制过来的...
Module.php (b2bUser)将以下内容复制到服务管理器配置:
'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;
},
设置完成后,我更改了 Entity 和 Mapper 中文件的命名空间等,以反射(reflect)它们的新家。更改实体和接口(interface)以反射(reflect)我自己的数据结构。我对 Mapper 文件做了同样的事情,并确保 Hydrator 文件中的变量名称与我的数据库列名称相同。
我将 AbstractDbMapper 文件留在原处。但这是我稍微调整了一下的文件。
这是我的样子。 SQLSRV 驱动程序充满了维尼,一直在提示一个对象或一个字符串......
protected function select(Select $select, $entityPrototype = null, HydratorInterface $hydrator = null)
{
$this->initialize();
$selectString = $this->getSlaveSql()->getSqlStringForSqlObject($select);
$stmt = $this->getDbAdapter()->driver->createStatement($selectString);
$stmt->prepare();
$res = $stmt->execute($stmt);
$resultSet = new HydratingResultSet($hydrator ?: $this->getHydrator(),
$entityPrototype ?: $this->getEntityPrototype());
$resultSet->initialize($res);
return $resultSet;
}
就是这样。我希望它至少可以帮助某人在自己的系统上启动并运行它。我不会像这样离开我的,但让它发挥作用有点像我的使命。
关于php - ZF2 : Custom user mapper for ZfcUser module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13186809/
我在大学学习C++时学习了这段代码..后来我在C#中使用了同样的东西...但现在我想在Java中使用它...我在互联网上寻找类似的东西,但我什至不知道如何表达它,以便我得到正确的结果。 所以嗯,请让我
我正在我的 Ruby on Rails Controller 上运行 RSPEC 测试,这是我正在测试的 Controller 操作: Controller 代码: class Customers::
想为我选择的选项卡设置自定义背景,到目前为止,子类化是我自定义 UITAbBar/UITabBarItem 的方式。 问题是:有谁知道(或知道我在哪里可以找到)设置背景的属性是什么? 所选选项卡周围有
您好,我在 commerefacades-beans.xml 中创建了 eProductForm bean,我添加了 ProductData 的自定义属性。 然后在commercewebs
我有两个表:1. 客户2. customer_order 客户表包含客户数据(duh),customer_order 包含所有订单。我可以在 customer.id=customer_order.id
在我的 TableView 中,我有一个 NSMutableArray *currList 的数据源 - 它包含对象 Agent 的对象。我创建了自定义的 TableCell 并正确设置了所有内容。我
是否建议使用自引用泛型继承? public abstract class Entity { public Guid Id {get; set;} public int Version
我正在尝试为我的 Grafana 安装使用自定义文件 ( custom.ini )。不幸的是,这不起作用。 我做了什么: 安装了一台装有 CentOS 7 的虚拟机 添加了 Grafana Yum R
我被分配了两个给定类的作业,一个是抽象父类 Lot.java,另一个是测试类 TestLots.java。我不应该编辑其中任何一个。任务是创建Lot的两个子类,使TestLots中的错误不再是错误。
我是 Botpress 的新手。 我刚刚安装了 Botpress 的最新版本“botpress-ce-v11_0_1-win-x64”。 我浏览了文档,发现了一些关于内容类型、内容元素和内容渲染的解释
我一直在四处寻找,但我还没有找到任何东西,除了 Qt3 的旧文档和 qt 设计器的 3.x 版。 我会举个例子,并不是因为我的项目是 GPL 而不能提供代码,而是为了简单起见。 示例:您正在为您的应用
场景 我有一个自定义规则来验证订单的运费: public class OrderValidator : BaseValidator { private string CustomInfo {
我有用于身份验证的自定义拦截器: @Named("authInterceptor") @Provides @Singleton fun providesAuthIntercep
如果有人没有添加照片,我想显示默认头像图像。我假设我需要在模型或助手中执行自定义 getter。 如果我做 getter,它会看起来像这样吗: def avatar_url "default_ur
我正在使用 Google Search API,但遇到了一些麻烦。这个请求(在 Python 中,使用 requests 库)工作正常 res = requests.get("https://www.
我使用 MSKLC 制作了自定义键盘布局。 我以为我仔细按照说明操作了chose appropriate values对于LOCALENAME和 LOCALID参数。 但是,在通过按 Win+Spac
我正在使用 simpleframework解析 XML 字符串并将其转换为对象。 Serializer serializer = new Persister(); try { Customer
我正在使用 C# 控制台应用程序从 MySql 数据库获取一些数据,但在正确查询时遇到一些问题 现在的情况: SELECT * FROM Customer WHERE EXISTS ( SELECT
我在我的 iPhone 4S 上运行我的应用程序,我正在使用自定义表格 View Controller 和自定义表格 View 单元格,当我将表格 View 向上滑动到空白区域并同样向下滑动到空白区域
我有一个自定义的 JavaScript 变量,它正在检查 eventAction 是什么,这样我就可以知道是否触发一些转换像素。自定义 Javascript 称为“FacebookConversion
我是一名优秀的程序员,十分优秀!