问题标签 [zend-framework-routing]

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 投票
1 回答
933 浏览

regex - Zend Framework 2 子正则表达式和文字路由

基于这个stackoverflow问题15077075,我已经完成了我的应用程序有一个基于正则表达式的路由,所以我可以将它传递给我的视图和编辑操作。

  • app/123 - 应用控制器视图操作(通过文章 id 获取)
  • app/name-of-article - 应用控制器视图操作(通过文章名称获取)
  • app/123/edit - 应用控制器编辑操作(文章 ID)
  • app/name-of-article/edit - 应用控制器编辑操作(文章名称)
  • app/search/{search-string} - 应用程序控制器搜索操作(目前只接受不带空格和特殊字符的搜索字符串)

这是我用下面的代码完成的,类似于上面链接中的代码:

我有两个问题,第一个是 url viewhelper 无法识别我的路线

它只是打印 /app 而不是 /app/recent,

$action = 'search'$action = 'new'仅打印 /app时也会发生同样的情况


第二个是只有当我在其中输入空格或特殊字符时,搜索才会被其控制器操作识别

当我尝试在搜索键('[\sa-zA-Z0-9_-]+')的约束中添加 \s 时,它会路由到编辑功能

搜索的路线是这样的

编辑了到这个的路线并且它有效

如果需要任何代码片段,我希望很清楚我想要什么,请询问

0 投票
2 回答
77 浏览

php - ZF2 控制器映射问题

我是 Zend 的新手。我已经设置了本地开发,zend.local 我正在创建一个新模块说Csv,当我转到像 zend.local/csv 这样的 URL 时,它给了我以下错误 在此处输入图像描述

module.config.php的如下:

0 投票
2 回答
268 浏览

zend-framework - 如何在 zend 2.3 中运行管理模块?

我通过谷歌搜索做了很多尝试,但我还没有找到合适的解决方案。谁能帮我吗?即使我尝试module.config通过路由更改文件代码,也尝试通过application.config文件在文件中添加模块名称,但它不起作用。

致命错误:在 D:\xampp\htdocs\myproject\vendor\zendframework\zendframework\library\Zend\Mvc\Router\SimpleRouteStack 中未捕获异常 'Zend\Mvc\Router\Exception\InvalidArgumentException' 并带有消息 'Missing "type" option' .php:269 堆栈跟踪:#0 D:\xampp\htdocs\myproject\vendor\zendframework\zendframework\library\Zend\Mvc\Router\Http\TreeRouteStack.php(163): Zend\Mvc\Router\SimpleRouteStack-> routeFromArray(Array) #1 D:\xampp\htdocs\myproject\vendor\zendframework\zendframework\library\Zend\Mvc\Router\Http\TreeRouteStack.php(113): Zend\Mvc\Router\Http\TreeRouteStack->routeFromArray (数组)#2 D:\xampp\htdocs\myproject\vendor\zendframework\zendframework\library\Zend\Mvc\Router\SimpleRouteStack.php(140): Zend\Mvc\Router\Http\TreeRouteStack->addRoute('controllers ', 数组) #3 D:\xampp\htdocs\myproject\vendor\zendframework\zendframework\library\Zend\Mvc\Router\SimpleRouteStack.php(84): Zend\Mvc\Router\SimpleRouteStack->addRoutes(Array) #4 D:\xampp\htdocs\ myproject\vendor\zendframework\zendframework\library\Zend\Mvc\Router\Ht 在 D:\xampp\htdocs\myproject\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php 在第 909 行

0 投票
1 回答
286 浏览

php - ZF2 fromRoute 不返回默认操作名称

我将创建一个这样的链接:

somesite.com/management/users/index/delete/10

其中 management 是模块名称,users 是控制器,index 是动作名称,delete 是获取记录 id 的参数。要创建此链接,我正在使用这部分代码:

我的配置如下:

结果是这样的:

somesite.com/management/users/delete/10

该函数省略了动作名称,因为它是我的默认动作,然后将删除作为动作名称,最后我得到 404 错误。如您所见,我有一个参数“id”,它不允许我从链接中省略短语“delete”。通过从 url 中省略“delete”,ZF2 将输入作为“id”而不是“delete”。我也无法更改我的默认操作。有没有办法告诉 ZF2 在 url 中输入动作名称?

0 投票
0 回答
61 浏览

php - ZF2 分段路线:仅最后一个元素

我有这个段路线:

它可以正确识别这样的 url,带有“id=20”:

但它也可以通过以下网址识别“id=20”:

我怎样才能避免这种情况?

0 投票
1 回答
46 浏览

zend-framework - 控制台中的 ZF2 主路由器

如何url()在控制台内使用控制器助手?

我必须使用控制台的操作生成一些 url,但是如果我调用$this->controller->url()->fromRoute(...);,我只能询问路由器中定义的console路由。

换句话说,我需要能够调用应用程序主路由器的所有路由。

谢谢

0 投票
1 回答
491 浏览

php - ZF2:使用转发插件时如何为所有控制器全局更改请求对象?

我在测试和性能目的中使用前向插件。首先IndexController数据通过正常的 POST 请求。在那里我得到了这个请求和 POST 数据,我需要再添加一个参数。

比我使用转发插件

当我在这里时,PortController我会再次收到我的请求 POST 数据,它应该包含我的更改IndexController

但事实并非如此。它得到的请求对象没有变化。

如何在当前请求过程中为所有控制器全局更改请求?

我已经在尝试什么?

所有这些差异都不起作用。

我已经阅读了这个答案 ZF2:如何将参数传递给转发插件,然后我可以在我将它们转发到的方法中获取这些参数?

但我不想通过参数传递数据,我需要更改请求。

UPD

但现在我已经过测试,也许是因为在接收方我试图以这种方式获取请求

但我应该这样使用它

这是因为我使用了 Apigility RPC 服务,并将 JSON 格式的 post 数据放在 Request Content 字段中,而不是放在 POST 中。在另一个地方我试着得到它

但是在我开始使用 POST 之后,这就是它开始感到困惑的原因。

0 投票
1 回答
2333 浏览

zend-framework - Zend Framework 2 路由错误:解析为无效的控制器类或别名

我正在尝试学习 Zend Framework 2,并且我已经启动并运行了他们的骨架应用程序。为了访问它,我访问http://localhost:8080/。当访问该链接时,它会显示他们的通用 Zend 页面。我想要做的是访问http://localhost:8080/application/test并让它把我带到具有不同布局的不同页面。

这是module.config.php

为了使它对我有用,这是我尝试过的:

首先,我在 Application/src/Application/Controller/ 中创建了一个名为 TestController 的控制器。

接下来我添加了 'application/test/index' => DIR。'/../view/application/test/index.phtml' 到 view_manager 中的 template_map 数组。

我还在控制器数组中添加了 'Application\Controller\Test' => 'Application\Controller\TestController'。

当我访问http://localhost:8080/application/test时出现错误:test(resolves to invalid controller class or alias: test)

我显然做错了,但是 Zend 上的文档对新手一点也不友好,而且变得非常令人沮丧。有人能指出我正确的方向吗?配置太多了,我敢肯定我错过了一些小东西。谢谢!

0 投票
1 回答
252 浏览

php - 子,通过方法不路由与子路由分段路由

这里的顶级路由器有效。/property 是一个字面量路由,它不会终止并在子路由上执行 GET 操作。在此之下,我有一个段路由,就像它的父级一样,它不会终止并在子路由上执行 GET 操作。它应该只在 /property/12 上响应 GET 请求

在那里路由时出现未找到的错误。

0 投票
1 回答
334 浏览

php - ZF2 Route 基于方法同时扩展 AbstractRestfulController

在 Zend Framework 2 中,我试图AbstractRestfulController根据请求类型将一些动态 url 路由到扩展的控制器中的指定操作。问题是,AbstractRestfulController不断将这些路由覆盖到默认操作get()getList()等等。

我的路线是:

我的路由器配置是:

我的控制器具有以下操作:

如何以这种方式专门路由,以便此控制器不允许其他请求类型/覆盖默认AbstractRestfulController路由?

另外,我想继续扩展这个控制器,因为我实际上是在扩展一个更通用的控制器,它扩展了这个 Zend 控制器。