问题标签 [zend-controller-plugin]

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 回答
2406 浏览

php - 带有 flashMessenger 的 Zend Framework 2 重定向()不起作用

我有一些带有 method_1() 的控制器。在这个方法中,我调用了 method_2()。在 method_2() 我有 (try...catch) - 使用定义的 flashMesseges 和重定向阻止。

但它不起作用。但是如果我写成

一切都好。在 method_1() 代码中

干得好。我不明白。有谁能够帮我?

A 类 - 重定向不起作用。并将消息添加到会话。

B 类 - 重定向工作。并打印消息。

为什么以及如何工作?

0 投票
1 回答
468 浏览

php - 如何在不使用 ZF2 中的任何控制器对象的情况下访问 module.php 中的控制器插件 ..?

我想添加错误处理module.php以在 flash messenger 中添加所有错误消息并重定向到特定页面(在我的要求中):

但在某些错误中,它会抛出对未定义方法插件的调用,$e->getTarget()因为在某些情况下,错误是在插件绑定之前生成的。我想要一种redirect and flash messenger plugins无需引用任何控制器即可访问的方法。

0 投票
2 回答
4131 浏览

zend-framework3 - 如何在 ZF3 上的控制器插件中获取翻译器

我想创建一个插件来在控制器上使用 zend-i18n/translate。在 zf2 上,我有一个控制器插件可以为我执行此操作,但在 zf3 上我无法让它工作。如何在控制器内部或通过带有 zf3 的控制器插件使用 zend-i18n?

========== 我刚刚在 zf doc 上找到了我需要的东西:https ://docs.zendframework.com/zend-mvc-i18n/services/#mvctranslator-and-translatorfactory

如果您已经在 module.config.php 上将翻译器配置为工厂,则可以注入控制器插件。

0 投票
1 回答
534 浏览

php - 从视图助手调用自定义插件

有没有办法从 ZF3 中的视图助手调用自定义插件?

根据 ZF3,助手的工厂是由我创建的。

在 ZF2 中,这就是我们所说的插件。

ZF3去掉serviceLocator后,如何调用插件?

编辑 module.config

MymethodController\CustomPlugin

0 投票
1 回答
200 浏览

redirect - Zend Framework项目目录重命名后,插件redirect()已经停止工作

我想在不关闭原始设计的情况下测试我的项目的新设计。我将整个源目录复制到新目录。我准备了如下子域和目录名称(这是共享主机):

我在本地主机(Windows、Apache2.4、php 5.6)上所做的相同。刚刚将“1”添加到新目录名称并复制源目录的所有内容。在本地主机上,两个“站点”都可以解决任何问题。

但是在我尝试使用重定向控制插件之前,在共享主机上重复的站点工作正常。结果我只看到空白页。它发生在我所有的 14 个模块和我使用的任何路线中。

一个示例调用:

,其中路由'main'配置为:

其他几个事实:

  • 我没有使用事件(如 MvcEvent::EVENT_DISPATCH 或任何其他事件)
  • 我在 Application 模块中只有一个 onBootsrtap() 方法(其他 13 个模块只不过是 Module.php 中的 getConfig() ):

    /li>
  • $this->redirect()->toRoute('main') 返回(恕我直言)正确的对象:

  • 浏览器中的地址还是一样的。

  • 浏览器开发工具显示浏览器没有重定向到任何地方(网络选项卡上没有新条目),
  • 浏览器没有收到新的传入数据。
  • 提供者共享的 Apache error.log 没有任何条目
  • Apache access.log 显示

也许这是线索:可以吗,该服务器在 POST 之后发送 /favicon.ico 吗?但为什么?我作为fakeAction() Zend\Http\PhpEnvironment\Response 对象而不是 ViewModel 的结果返回。

  • 我正在捕获所有异常、错误和严格通知,但在这种情况下 - Apache/php/framework 不会触发其中任何一个。

  • 最后一次测试:如果在复制过程中某些文件被损坏,我只是将工作版本的目录从“项目”重命名为“项目1”,效果是一样的——重定向不起作用。

更新 1

  • 我删除了供应商目录并通过作曲家再次获取它。
  • 缓存清晰(我没有使用缓存,zend 框架一直处于开发阶段)

最终更新!

我发现发生了什么。正如我在我的一个答案中所写,我composer通过 Zend Studio 界面使用。今天打开 Zend Studio 控制台,仔细查看了控制台日志。每次我使用命令更新/安装依赖 composer项时都使用自己的缓存(不是在线存储库),它复制了模块 zend-developer-tool 但(出于未知原因)模块的一个文件在本地硬盘的作曲家缓存中损坏。在我删除作曲家缓存并再次运行更新/安装依赖项后,所有工作都应如此。谢谢大家的努力。

0 投票
1 回答
44 浏览

zend-framework3 - 如何在 onDispatch 事件中使用插件方法?

我有一个查找用户授权的插件。

我在我的 module.config.php 中声明它如下:

在我的onDispatch(MvcEvent $event)事件中,我想获取 http 路由参数,查找授权,如果成功,则重定向到正确的路由。

当然找不到插件,它还没有加载:

调用未定义的方法 User\Module::access()

无论如何,我想调用插件方法。在这种情况下有可能使用它吗?像这样的东西:

任何帮助表示赞赏!

**编辑:我尝试了 ermengildo 给我的解决方案。但它不起作用,原因是我还没有和工厂合作过。在一些帮助下,我可能可以学会如何正确地做到这一点。这是我的乳头:

我在这里找到了两个服务:

服务地点

我将 module.php 更改为(片段!):

公共函数 onDispatch(MvcEvent $event) {

最后我试图将服务声明为工厂:

备注:这里已经有语法警告:...无法解析为类型

如果我调试,我会得到一个异常:

无法将服务“User\Service\AccessControl”解析为工厂;你确定你在配置过程中提供了它吗?

在进一步的解释中,我的 module.php 中的这一行应该是问题所在: