问题标签 [zend-framework3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - ZF3/2 - 如何捕获在 EVENT_DISPATCH 监听器中抛出的异常?
有什么办法可以服务在 EVENT_DISPATCH 侦听器中引发的异常?
我有一种常见的服务方式,ForbiddenException
例如设置 403、返回 JSON 等……所有逻辑都附加到MvcEvent::EVENT_DISPATCH_ERROR
侦听器。如何转移ForbiddenException
到调度错误侦听器中的侦听器?从调度侦听器中抛出它会导致未捕获的异常错误......
任何帮助或提示如何克服它将不胜感激!
php - Zend 框架 3 教程
我正在尝试 Zend 框架 3 教程,并且在深入部分(博客案例)中陷入“编辑”功能。
尝试编辑博客消息时,编辑表单不显示原始消息。似乎原始消息无法绑定到表单。
我复制了所有示例代码。我不知道它有什么问题。顺便说一句,我的添加和删除功能工作正常。
有人可以帮我吗?
教程中的editAction
方法:
php - ZF3 单元测试认证 onBootstrap
IndexController
我在为我的班级运行单元测试时遇到问题。
单元测试只是执行以下操作(灵感来自zf3 的单元测试教程):
IndexControllerTest.php
:
在Module.php
我有一些功能可以检查是否有用户登录,否则他将被重定向到login
路由。
Module.php
:
该checkPermission
方法只是检查用户角色和匹配的路由是否在 acl 存储中。如果失败,我将重定向状态码 404。
问题:单元测试失败:“断言响应代码“200”失败,实际状态代码为“302”因此单元测试在重定向发生的地方从我的onBootstrap
方法跳转到其他情况。Module.php
我setUp
在TestCase中做了以下操作,但它不起作用:
非常感谢提示
代码可能与Zend Framework 2有所不同,但如果您在 zf2 中有一个简单的工作示例,也许我可以将其转换为 zf3 样式。
我不使用 ZfcUser - 只是 zend-acl / zend-authentication 的东西
php - Zend3中服务管理器的正确使用方法
我正在阅读关于 Service Manager 的 Zend 3 文档,我遇到了这个问题。
在文档中它说如果我们的控制器中有一些 DI,我们应该更新module.config.php
文件并添加控制器键并调用控制器而不是InvokableFactory::class
使用自定义工厂类并添加另一个键 service_manager 包含我的第一个控制器使用的类数组。
好的,我这样做:
模块.config.php
Controller1Factory.php
但是现在我有错误,Controller2 和 Controller3 在它们的构造函数中也有 DI,所以我创建了新的自定义工厂等等......直到我得到我的模型。
并且模型还具有注入到其控制器中的依赖项,该控制器是 zend 原生的\Zend\Db\TableGateway\TableGatewayInterface
,我现在必须再次编辑我的 conf 文件并添加TableGatewayInterface
.
这是错误的。我永远不应该被迫以这种方式注入原生 zend 类和服务。
那我做错了什么?
php - Zend Framework 2/3 模型与自身和另一个模型的关系
首先,我阅读了以下两个 stackoverflow 问题,但它们并没有真正给我答案:
在我的应用程序中,我有一个员工数据库表,它有很多属性,但目前对我来说最有趣的是外键manager_id
和bank_id
外键。
manager_id
是另一个员工的外键(你可以想象一个员工可以有一个经理)bank_id
是另一个模型/数据库表的外键bank
- 因为员工可以有一个银行账户;-)
现在在我的EmployeeTable.php
文件中,我有那些获得数据库结果的神奇方法。
为了得到一名员工,我这样做:
但是没有任何sql 连接,我返回的员工对象中只有 manager_id 和 bank_id。
问题:获取这些所需信息的最佳做法是什么?
到目前为止,我有两个想法:
第一的
我应该——如果$row
不是空的——调用例如bankTable
具有方法的对象(通过依赖注入)getBankById
。然后,我将使用带有 getter/setterEmployee.php
的属性扩展我的模型,并且在我的方法中的语句之前,我会执行以下操作:$bank
return
getEmployeeId
但我害怕递归循环这样做,manager_id
因为我会调用我目前使用的相同方法。
第二
或者我应该使用左连接扩展我的getEmployeeById
方法以从银行表中获取数据,如下所示:
不幸的是,我必须给加入的列提供别名,否则我会id
用银行 ID 等覆盖员工的别名。
在这种 sql 语句之后,您可以看到,我将提取结果以获取属性作为值,然后对它们进行水合。
水合作用看起来像这样:
因此,我有一个干净的employee
模型(没有那些额外的别名列)和另外 2 个新属性,它们是另一个员工(经理)和银行的对象。
但这看起来相当超载......
感谢您到目前为止的阅读 - 如果您有任何提示或建议,我们将受到热烈欢迎!
编辑
我已编辑我EmployeeTableFactory
的内容以执行以下操作(关于保湿):
我改变了我EmployeeHydrator
的实现HydratorInterface因为我已经在使用提取的东西,现在它与resultSetPrototype->setHydrator()
方法的必要接口相匹配。
现在,该方法变得非常容易,getEmployeeById
因为使用以下代码,我已经有了完成的员工对象和所有相关的外键对象(由于我的EmployeeHydrator
)
我有点喜欢这个实现
php - 在 ZF3 中获取模块配置
我想从 Zend Framework 3 中的控制器中检索我的模块配置。我进行了搜索,似乎在 ZF2 中执行此操作的标准方法是使用
访问中的配置module.config.php
。但是,这在 ZF3 中不起作用,因为没有getServiceLocator()
方法。
实现这一目标的标准方法是什么?
zend-framework2 - 使用 ZF3 在 Module Bootstrap 中无法访问查看 Helper Manager
使用Zend Framework 2
我可以访问ViewHelperManager
这样做:
自从使用Zend Framework 3
.
不太确定在这里做什么。
zend-framework - 在渲染事件期间将变量分配给phprenderer而不是传递给布局
我试图在我附加到的事件期间将变量分配给我的视图渲染器render event
并且它不产生值。
我有一个事件,我附加到render event
我的Application Module
. 我也有在render event operation
This is a Zend Framework 3 Application 期间调用的方法,但是我标记了 Zend Framework 2 以获得更多曝光,因为该框架非常新。这里是
如果您看,我正在getPhprenderer()
使用DesignHandler
该类调用该方法。此方法返回一个\Zend\View\Renderer\PhpRenderer
. 无论如何,在此之后我将变量分配给渲染器对象。
在此之后,in my layout - application/view/layout/layout.phtml
我这样做:
我进入blank values
这个。
我在这里做错了什么?
这是当前的结果:
zend-framework - ZF3 MVC Zend\身份验证即服务工厂
我正在尝试使我的 ZF2User
模块适应 ZF3 MVC。它有一个身份验证服务管理器,在每个请求(即页面加载)onBootsrap
的类内的函数中调用该管理器,Module
以检查用户是否通过身份验证。
由于serviceLocator
并且ServiceAware
不再可用,我正在尝试创建一个,AuthenticationServiceFactory
但我还没有成功。您对我做错了什么以及如何使用 ZF3 做到这一点有任何想法吗?
这是我的module/User/config.module.config.php
文件的简化版本
这是我的module/User/src/Service/AuthenticationServiceFactory.php
文件
这是我的module/User/src/Module.php
文件
有任何想法吗 ?
zend-framework2 - 事件未正确触发
这是我的代码:
使用它后,我得到Fatal error: Uncaught TypeError: Argument 1 passed to Application\Module::loadEvents() must be an instance of Zend\Mvc\MvcEvent, instance of Zend\EventManager\Event given
. 我做错了什么