问题标签 [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.

0 投票
2 回答
1459 浏览

php - ZF3/2 - 如何捕获在 EVENT_DISPATCH 监听器中抛出的异常?

有什么办法可以服务在 EVENT_DISPATCH 侦听器中引发的异常?

我有一种常见的服务方式,ForbiddenException例如设置 403、返回 JSON 等……所有逻辑都附加到MvcEvent::EVENT_DISPATCH_ERROR侦听器。如何转移ForbiddenException到调度错误侦听器中的侦听器?从调度侦听器中抛出它会导致未捕获的异常错误......

任何帮助或提示如何克服它将不胜感激!

0 投票
1 回答
3566 浏览

php - Zend 框架 3 教程

我正在尝试 Zend 框架 3 教程,并且在深入部分(博客案例)中陷入“编辑”功能。

尝试编辑博客消息时,编辑表单不显示原始消息。似乎原始消息无法绑定到表单。

我复制了所有示例代码。我不知道它有什么问题。顺便说一句,我的添加和删除功能工作正常。

有人可以帮我吗?

教程中的editAction方法:

0 投票
1 回答
2382 浏览

php - ZF3 单元测试认证 onBootstrap

IndexController我在为我的班级运行单元测试时遇到问题。

单元测试只是执行以下操作(灵感来自zf3 的单元测试教程):

IndexControllerTest.php

Module.php我有一些功能可以检查是否有用户登录,否则他将被重定向到login路由。

Module.php

checkPermission方法只是检查用户角色和匹配的路由是否在 acl 存储中。如果失败,我将重定向状态码 404。

问题:单元测试失败:“断言响应代码“200”失败,实际状态代码为“302”因此单元测试在重定向发生的地方从我的onBootstrap方法跳转到其他情况。Module.php

setUpTestCase中做了以下操作,但它不起作用:

非常感谢提示

代码可能与Zend Framework 2有所不同,但如果您在 zf2 中有一个简单的工作示例,也许我可以将其转换为 zf3 样式。

我不使用 ZfcUser - 只是 zend-acl / zend-authentication 的东西

0 投票
1 回答
473 浏览

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 类和服务。

那我做错了什么?

0 投票
0 回答
763 浏览

php - Zend Framework 2/3 模型与自身和另一个模型的关系

首先,我阅读了以下两个 stackoverflow 问题,但它们并没有真正给我答案:

在我的应用程序中,我有一个员工数据库表,它有很多属性,但目前对我来说最有趣的是外键manager_idbank_id外键。

  • manager_id是另一个员工的外键(你可以想象一个员工可以有一个经理)
  • bank_id是另一个模型/数据库表的外键bank- 因为员工可以有一个银行账户;-)

现在在我的EmployeeTable.php文件中,我有那些获得数据库结果的神奇方法。

为了得到一名员工,我这样做:

但是没有任何sql 连接,我返回的员工对象中只有 manager_id 和 bank_id。

问题:获取这些所需信息的最佳做法是什么?

到目前为止,我有两个想法:

第一的

我应该——如果$row不是空的——调用例如bankTable具有方法的对象(通过依赖注入)getBankById。然后,我将使用带有 getter/setterEmployee.php的属性扩展我的模型,并且在我的方法中的语句之前,我会执行以下操作:$bankreturngetEmployeeId

但我害怕递归循环这样做,manager_id因为我会调用我目前使用的相同方法。

第二

或者我应该使用左连接扩展我的getEmployeeById方法以从银行表中获取数据,如下所示:

不幸的是,我必须给加入的列提供别名,否则我会id用银行 ID 等覆盖员工的别名。

在这种 sql 语句之后,您可以看到,我将提取结果以获取属性作为值,然后对它们进行水合。

水合作用看起来像这样:

因此,我有一个干净的employee模型(没有那些额外的别名列)和另外 2 个新属性,它们是另一个员工(经理)和银行的对象。

但这看起来相当超载......

感谢您到目前为止的阅读 - 如果您有任何提示或建议,我们将受到热烈欢迎!

编辑

我已编辑我EmployeeTableFactory的内容以执行以下操作(关于保湿):

我改变了我EmployeeHydrator的实现HydratorInterface因为我已经在使用提取的东西,现在它与resultSetPrototype->setHydrator()方法的必要接口相匹配。

现在,该方法变得非常容易,getEmployeeById因为使用以下代码,我已经有了完成的员工对象和所有相关的外键对象(由于我的EmployeeHydrator

我有点喜欢这个实现

0 投票
2 回答
3814 浏览

php - 在 ZF3 中获取模块配置

我想从 Zend Framework 3 中的控制器中检索我的模块配置。我进行了搜索,似乎在 ZF2 中执行此操作的标准方法是使用

访问中的配置module.config.php。但是,这在 ZF3 中不起作用,因为没有getServiceLocator()方法。

实现这一目标的标准方法是什么?

0 投票
1 回答
896 浏览

zend-framework2 - 使用 ZF3 在 Module Bootstrap 中无法访问查看 Helper Manager

使用Zend Framework 2我可以访问ViewHelperManager这样做:

自从使用Zend Framework 3.

不太确定在这里做什么。

0 投票
2 回答
190 浏览

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这个。

我在这里做错了什么?

这是当前的结果

0 投票
2 回答
4655 浏览

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文件

有任何想法吗 ?

0 投票
1 回答
47 浏览

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. 我做错了什么