问题标签 [zend-router]

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

php - Zend Expressive 中的主机名路由

Zend Expressive 有 Aura.Router、FastRoute 和 zend-mvc 路由器的适配器,并且路由可以轻松匹配方法和路径:

使用zend-mvc 路由器组件可以匹配主机名:

这也可以通过 Symfony路由组件实现:

因此,我希望能够使用 Expressive 做类似的事情,并根据子域将请求分派到不同的中间件:

提前致谢!

0 投票
1 回答
348 浏览

php - 可访问 db 的 ZF3 路由

我是 zend 框架 3 的新手,我正在尝试创建一个新的路由类型,可以在数据库中搜索以匹配路由路径。我正在使用学说 orm,不幸的是我不知道如何在路由类中注入实体管理器。

我尝试为路由定义一个工厂类以访问服务管理器,但这不起作用,因为路由类必须实现 Zend\Router\Http\RouteInterface 声明路由类必须包含它自己的工厂,定义为“函数工厂($选项)”。

有人可以帮忙吗?

非常感谢。

0 投票
3 回答
2166 浏览

php - ZF3:如何根据方法和路由路由到特定的控制器/动作?

在我的模块中module.config.php,我有这样的东西:

我想要达到的目标:

  • 如果路由/index/foo被请求并且被GET方法请求,那么它应该被路由到IndexController fooAction
  • 如果路由/index/foo被请求并且被POST方法请求,那么它应该被路由到IndexController bar Action(注意这里是 barAction 而不是 fooAction)

如何做到这一点?

0 投票
1 回答
129 浏览

router - Zend 路由问题

我正在将一个(相当草率的)zend 表达性网站转换为本地餐厅的 zend 框架 3 网站。当我在富有表现力的网站上设置路由时,我会根据如下所示的查询参数加载位置。

website.com/location?location=xxx

在我的新网站上,路由看起来像这样

website.com/locations/view/xxx

我需要设置一个将旧网址重定向到新网址的路线。到目前为止,我已经设置了一个查找 /location?location=[/:location] 的路由,希望它能识别这个“Segment”路由并加载适当的 LocationsController。现在它给了我一个找不到路线的错误。

我的代码如下所示。

模块.config.php

位置控制器.php

任何帮助将不胜感激,如果需要,我可以提供更多信息。谢谢!

0 投票
1 回答
103 浏览

mezzio - hal 中生成的不完整链接(zend-expressive-hal + zend-router)

我的路线定义:

数据数据地图定义:

生成结果:

所有链接都是用不完整的href生成的,只有域部分,路由部分被剥离..

预期的结果是这样的:

我做错了,我不知道从哪里开始..

谢谢大家给我一些想法

简化控制器代码:

PS:我没有使用完整的zend-expressive只是zend-framework ..

0 投票
0 回答
51 浏览

php - ZF3 如何在首页路由中使用可选参数

我在向我的主路由添加可选参数时遇到问题。

这是我目前的路由器:

我的控制器:

domain.ltd/ 这行得通,我得到了沙龙参数的默认值,即“测试”

domain.ltd/test123 预期值为“test123”,但这会显示 404 错误:请求的 URL 无法通过路由匹配。

0 投票
0 回答
136 浏览

php - ZF3 高级路由 - 带有动作参数的父子路由

使用 ZF3,我想访问如下 URL:

这是我的路由配置:

父路由和子路由都有一个“动作”参数。此配置在直接调用时工作正常(即在浏览器中输入 url “/dossier/edit/3/droit/delete/2”)。但是,使用 viewHelper Url 构建 URL:

产生网址:

在显示创建(“添加”)视图时,而不是 URL :

从 topic Zf2 view helper URL child route with same params,我知道我可以为每个子操作创建一个子路由,从而摆脱第二个“action”参数,但这似乎不太正确。

我不禁想知道为什么我能够同时拥有 Segment 类型的父子路由并且仍然被卡住,因为没有办法重命名“动作”参数而不破坏 ZF 将 URL 路由到控制器方法的方式。

路线“droit”必须是“档案”的子路线,因为它需要档案的 id(并且将档案的 id 放在表单中的隐藏输入中似乎是一个更糟糕的解决方案)。

我错过了什么吗?没有更好的解决方案吗?

0 投票
2 回答
24 浏览

zend-framework - 重定向不同的视图脚本

我想重定向到不同的视图脚本取决于用户可以填写的搜索类型。

例如:用户想要搜索一个人,而不是我想为人使用匹配的视图脚本(ansprechpartner)。请看一下我的控制器操作的一部分:

在屏幕截图中,我的文件夹将显示:

在此处输入图像描述

那么在这种情况下如何使用现有的视图脚本,而不调用匹配的控制器操作呢?

0 投票
1 回答
138 浏览

zend-framework3 - Zend 框架 3 路由器在单独的文件中(不在配置数组树中)

我正在使用本教程https://docs.zendframework.com/tutorials/getting-started/overview/来创建相册模块。这个对我有用。

项目内部有 /module/Album/config/module.config.php 文件,其中包含路由。路由器位于阵列树内。正如我之前的经验所表明的那样,我将来每个项目(甚至每个模块)都可以拥有数十条路线。

在此文档页面https://docs.zendframework.com/zend-router/routing/上,我找到了另一种将路由器添加到模块的方法。

这种方式比将路由存储在非常深的配置数组树中更适合我。

所以,我的问题是:我可以在哪里将 php 路由器代码放在配置树之外,就像我之前提到的那样?这样的路由器文件应该在模块中的什么位置?