问题标签 [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 投票
4 回答
1045 浏览

php - ZEND - 冲突的路线模式

我正在使用 Zend 框架 1.12,试图提出自定义路由。

我正在尝试创建看起来像 facebook 的个人资料 URL ( http://facebook.com/username ) 的东西。所以,起初我尝试了这样的事情:

每当我尝试运行 mydomain.com/something 时,我都会收到以下错误:

致命错误:在第 336 行的 /var/desenvolvimento/padroes/zf/ZendFramework-1.12.0/library/Zend/Controller/Plugin/Broker.php 中未捕获异常 'Zend_Controller_Router_Exception' 并带有消息 'eventName is not specified'

不仅我无法使那段代码工作,我所有的默认路由(显然)都被覆盖了。因此,例如,我有诸如“mydomain.com/admin”之类的东西应该将我发送到 Index 控制器上的“admin”模块,但现在返回相同的错误(因为它与 / 的模式相同:事件名称)。

我需要做的是创建这个自定义路由,而不覆盖默认路由并实际工作(dûh)。

我已经检查了在线文档和谷歌上的很多(很多)东西,但我没有找到与我遇到的错误或如何不覆盖默认路由相关的任何内容。我会很感激任何可以为我指明正确方向的东西。

谢谢。


编辑¹:我设法让它工作,但我根本没有使用任何路由。我刚刚用以下内容制作了一个插件:

不过,这感觉像是一个丑陋的解决方法……正如Tim Fountain指出的那样,我的事件是动态的(我从数据库中加载它们),所以我无法对其进行硬编码。此外,我当前的实现使我不必对每个模块/控制器/动作组合进行硬编码。

我只想知道是否有办法避免使用插件。


EDIT²:我不再做那个糟糕的插件了。我弄清楚是什么导致了路由器错误。我的路由定义没有变量“eventName”的有效默认值。我的解决方法是:

我仍然无法创建具有“冲突”模式的路由,例如/admin/:eventName。如果有办法让/admin覆盖/:eventName ...

0 投票
1 回答
351 浏览

php - ZendFramework 2 - 如何使用一个路由器规则使所有操作可用?它唯一允许的动作索引

如何使用一个路由器规则允许该控制器内的所有子操作?例如以下:

例子:

跟进:

我怎样才能让它 /login 和 /login/anything 工作?

0 投票
2 回答
440 浏览

zend-framework - Zend Router URL 数组合并

我对自定义 zend 路由器有疑问。这是我的猫路由器

当我尝试http://dev.dummy.com/video/k/1/foo工作正常但

不返回htttp://dev.dummy.com/video/k/1/foo/order/title 仍然返回htttp://dev.dummy.com/video/k/1/foo

希望这有帮助。谢谢。

0 投票
3 回答
6376 浏览

alias - ZF2:在路由器中创建 url 别名

我是 Zend Framework 2 的新手,我想学习这个框架。我想在路由器中创建 url 别名。例如,我在 module.config.php 中定义了类似的东西

当我键入www.myapp.local/node/1它时,它会路由到我的应用程序的默认控制器中的默认操作。我想要的是一个可以处理 url 路径别名的路由器扩展。例如:

我知道这在采埃孚是可能的。以下是如何在 ZF 中实现此目的的教程链接: 友好的 urls 我知道这是波兰语,但我认为代码是不言自明的 :)

这个想法是使用 url helper 使用别名或普通段 (node/[:id]) 组装有效的 url

我已经在 Application\Controller 文件夹中创建了 AliasSegment 类,但它显示了一个错误:

我的 AliasSegment 类(不完整):

我一直在寻找几个小时的答案,但我找不到任何东西。请至少告诉我我做错了什么,在哪里插入代码或者你知道更好的解决方案?

我不是在寻找现成的应用程序。我想学习一些东西,但如果您能详细告诉我答案,我将不胜感激:)

提前感谢,对不起我的英语:)

编辑:

我的自定义路由器现在正在工作。此时别名是硬编码的,但它可以工作。

我的 AliasSegment 类现在看起来:

在这种情况下/about/gallery是 的别名/node/1。两个地址都是正确的。buildPath 函数正确返回别名路径。好吧,我希望这对某人有用:)

但是我想在 Zend_Navigation 中使用名为“链接”的附加参数来设置它。

我已经完成了我想要实现的 50%,但是现在我无法从路由器获取 Zend_Navigation。我不知道如何通过它。我想应该是这样的:

它适用于我的 IndexController,但不适用于我的 AliasSegment。我需要在带有“链接”参数的导航数组节点中找到。

编辑

我找到了解决方案。答案如下。

0 投票
2 回答
2840 浏览

php - ZF2:如何在自定义路线中获取 Zend\Navigation?

我有自定义路由器,我必须访问Zend\Navigation这个自定义路由器内部。我在谷歌上搜索、询问和搜索,但没有结果:/

我只需要在 Alias::match 函数中使用 Zend\Navigation 找到具有“链接”参数的节点。

这是我的module.config.php:

这是我的别名课程:

编辑:

现在我知道我应该将服务管理器注入我的自定义路由器。如果你知道怎么做,请告诉我:)

编辑:

好的,它不是自定义路由器,而是路由。我的错。我在谈论#zftalkirc chanell 和AliasSegmentclass should implements ServiceLocatorAwareInterface。好的,我已经尝试过了,但现在还有另一个问题。

setServiceLocator功能上我无法获得service locator。它返回 null 对象,但是$serviceLocator是 class Zend\Mvc\Router\RoutePluginManager

任何想法如何从中获得 Zend 导航?

已编辑

与@mmmshuddup 所说的相对应,我已经更改了我的自定义路由器类。(上面是新版本)。同样在我的Module.php,onBootstrap函数内,我添加了这一行:

导航有效并且之前已实例化,route因此它应该在我的 Alias 类中可见,但事实并非如此。

match在课堂上的函数中加入了Alias这一行:

而且$servicesArray几乎是空的。没有服务,没有工厂。onBootstrap在设置新工厂(如上)之后插入的同一行返回数组navigation和其他服务。

问题是:我如何与我的自定义路由器共享这个阵列(或 ServiceManager)Alias:?

我不得不说,我想做的一切在 ZF1 中都是可能的,而且非常简单。

编辑

我找到了解决方案。答案如下

0 投票
1 回答
197 浏览

php - 使用 Zend Router 时,其他链接(未定义为路由的链接)损坏

我正在使用 Zend Framework 1.12。

我想添加一些路由器。我的系统中有用户和管理员,我添加了一个路由器供管理员查看用户页面。

我添加了

到我的 Bootstrap.php 文件。我的侧边栏中有一些链接,其中包含指向(另一个控制器的)操作的链接。我在 .phtml 文件中添加了他们的链接作为

此侧边栏包含许多来自多个控制器的链接。

在我添加路线之前,这些工作正常。在我向 Bootstrap 添加新路由(并向从 rooter 指向的控制器(用户)添加新操作(viewall)后,效果很好(我可以用作“xxx.com/userview/someusername”)。但我的其他链接在侧边栏全部变成“xxx.com/userview”。他们都失去了控制器和动作的价值......

我究竟做错了什么??我应该更好地定义我的 url,还是更好地定义我的路由器?

提前致谢。

0 投票
1 回答
319 浏览

routing - 跳过 ZF2 HTTP 查询路由器中的自定义参数

我正在使用 zend url helper 生成 url addres /query,正如我在 这里找到的那​​样。在配置文件中,我设置了这样的路由器:

我收到生成的链接,看起来像这样:

我想要做的是删除我没有设置controlleraction参数,并且只显示我自己提供的参数。

路由器配置中是否有任何设置选项?或者也许还有其他方法可以得到我想要的?

0 投票
1 回答
662 浏览

zend-framework - Zend 路由/URL 助手。在 URL 中首先显示一个全局参数

很好奇是否有人知道实现以下内容的最佳方法:我在我的 zend 框架 1.12 应用程序中有一个参数,它有效地控制事物的“范围”,并且是我数据库中每个表中的一个字段,用于表示一行的范围. 它是一个简单的整数变量,可以被认为是“buildingID”,因此它控制着我们正在使用的“建筑物”。

在一个插件中,我有:

这完成了我所需要的。当我使用 URL view-helper 构建 URL 时,我有我的参数,但它始终位于参数列表的末尾。我知道从编程的角度来看这是微不足道的,但是我将如何实现将这个全局参数“添加”到我的 url 参数中?

成为

接受任何想法。如果你想让我重载 url view helper,你能提供一些示例代码吗,因为我在设置这个类时遇到了麻烦。

谢谢你们!

0 投票
1 回答
117 浏览

php - 为分页、排序和过滤器创建 URL - ZF

我所有正在阅读本文的人,

5分钟前我在网上,发现一个很不错的网址:

这与以下内容有关:

我想知道如何使用Zend_Controller_Router_RouteZend Framework 类创建类似的 URL。

对于我的网站,它会是这样的:

或者

注意:我对正则表达式不友好,所以我想禁止这样做,或者如果有人确切表达,将不胜感激。

0 投票
1 回答
1009 浏览

php - zend framework url helper - 如何在控制器之前传递变量?

我对 Zend Framework (1.12) - url helper 有特定的问题。

我有网站,以这种形式按语言划分:

/en/contact /de/gallery/gal1

ETC..

我已将路由器更改为接受第一个参数作为变量,并且可以通过 GET 访问它。

如何设置 URL 帮助程序以遵循此指南并在 URL 中的控制器之前传递此变量?(我没有使用模块)。

非常感谢。伊万