问题标签 [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 回答
554 浏览

php - 应用程序停止工作是我在 Zend Framework 2 中使用 this=>url('router') 吗?

路由器没问题,它通过地址栏工作 如果我回显 URL,路由器没问题 如果我回显 $this->url('routename'),应用程序将停止工作

伙计们,这是路由器:

这是控制器的可调用

现在,当我打开 URL:http://goodsApp.localhost:88/owned时,它可以工作

当我在导航栏中放置其他链接时出现了问题,其中添加商品和主页等其他链接正在工作,但拥有的却没有。

应用程序没有运行,没有控制器和路由匹配。即使不是主页,它也显示

在 path\to\app\vendor\zendframework\zendframework\library\Zend\Mvc\Router\Http\TreeRouteStack 中未捕获异常 'Zend\Mvc\Router\Exception\RuntimeException' 并带有消息 'Route with name "owned" not found'。 php:313 堆栈跟踪:#0 path\to\app\vendor\zendframework\zendframework\library\Zend\View\Helper\Url.php(100): Zend\Mvc\Router\Http\TreeRouteStack->assemble(Array, Array) #1 [内部函数]: Zend\View\Helper\Url->__invoke('owned') #2 #2 path\to\app\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer。 php(400): call_user_func_array(Object(Zend\View\Helper\Url), Array) #3 path\to\app\module\Application\view\layout\layout.phtml(48): Zend\View\Renderer\PhpRenderer ->__call('url', Array) #4 path\to\app\module\Application\view\layout\layout.phtml(48):Zend\View\Renderer\PhpRenderer->url('owned') in path\to\app\vendor\zendframework\zendframework\library\Zend\Mvc\Router\Http\TreeRouteStack.php 在第 313 行

但是,如果我从导航中删除导航栏链接(最后一个 li 标签),它会再次起作用。即使不是 this->url('owned') 我只是 echo 'owned' 它仍然有效。

问题是只有当我在导航栏中回显 this->url('owned') 时,它才会停止工作并给出异常。如果我通过地址栏或任何其他方式使用路由,例如在导航栏中回显“拥有”,它就可以工作。

还有什么问题,随意问我。

0 投票
2 回答
415 浏览

php - Zend Framework 2 Segment Route 匹配 'test' 但不匹配 'test/'

我有两个模块管理和应用程序。在模块应用程序中,我的 module.config.php 中有以下路由:

问题是它匹配

example.com/admin

并且不匹配

example.com/admin/

我该如何解决?

0 投票
3 回答
2458 浏览

zend-framework2 - Zend Framework 2 通配符路由

我的路线如下module.config.php

路由末尾的原因[/]在于问题:Zend Framework 2 Segment Route matching 'test' but not 'test/'

我希望这条路线像 ZF1 一样。我想传入$_GET parameters它(如/id/1/test/2/)。

这条路线实际上匹配/admin/customer/edit//id/20但不匹配的问题/admin/customer/edit/id/20

有任何想法吗?

0 投票
1 回答
359 浏览

php - 如何像laravel一样在zend 2中返回视图

我需要制作一个zend 2网络应用程序,但其中的知识为零

在我看过的所有教程中,他们都在module.config.php中设置了视图的文件名,在laravel中你只需要设置视图的路由,你可以在控制器中设置什么文件给那条路线。

那么如何将此 laravel 代码转换为 zend 2 代码:

$fileDirectory = isMobile() ?“viewfiledirectory/viewfile_mobile”:“viewfiledirectory/viewfile”;

返回视图::make($fileDirectory);

或者,如果没有与之等效的zend 2,至少我该如何做到这一点,每个文件都在模板映射中硬编码,我如何才能使控制器指向该路由。

这是一个大网站,每条路线至少有 8 页(根据语言设置和用户设备,只使用一个),我不能只在module.config的模板映射中列出所有文件.php,我希望它像我在 laravel 中所做的那样。

0 投票
1 回答
479 浏览

php - ZF1:数据库中的路线

我正在为我的 ZendFramework 应用程序构建一个简单的 CMS 模块。

目前我的所有路由都在一个 .ini 文件中,是否可以使其成为数据库驱动的。或者,如果可以为 DB 构建回退方法,请检查 .ini 文件中是否不存在该路由。

更新 - 解决方案

希望这会对某人有所帮助 - 请注意,我有自定义的 My_Db_table 和 My_Db_Row,我没有在此处发布。所以 ->fetchAllActive() 可能需要更改为 ->fetchAll(); 并且行对象上的吸气剂可能/可能不起作用,不记得它们是否是自定义的 - 你会弄清楚的;-)

但是如果没有其他路由适用,即从 .ini 文件中,路由器基本上会检查 DB。我没有检查这是否适用于所有路由类型,但它适用于默认路由类型。我使用 DB 路由将 url 指向 pageController,并在 route_defaults 单元格中将 pageId 等附加参数存储为 JSON 字符串。但是您基本上可以将其用于所有类型的路线。

在引导程序中

我的/控制器/路由器/Rewrite.php

路由 Db_Table 模型

路线 - Db_Table_row

路由表的 SQL 模式

0 投票
1 回答
575 浏览

zend-framework2 - 当 Apigility db-connected 动作发生时使用 Zend 事件做一些事情

一旦调用了我的 Apigility db-connected rest 服务(例如创建实体的服务),我需要执行一些操作。我想用 Zend Events 来做这件事,但我不知道从哪里开始,因为 Apigility 没有创建我可以看到的代码。请如果有人可以提供一个如何做到这一点的例子,那就太好了。我是 Zend 和 Apigility 的新手。在此先感谢亚历杭德罗

0 投票
1 回答
46 浏览

php - 动态创建表单时消失的斜线(“/”)

我正在尝试在 PHP 中动态创建一些输入表单。这是一个将 html 返回到视图中的函数。(ZF2)

在php中我有这个:<input name="bla" type="text" value="bla" />

它变成了这样:<input name="bla" type="text" value="bla" >

所以最后的斜线不见了。有人能告诉我为什么吗?

提前致谢。

0 投票
2 回答
64 浏览

php - 我可以有一个不加载模板的操作吗?

我在这里得到了这个问题的答案,但现在我有另一个担心\问题。

我的模块中有一个子导航栏,它是通过帮助程序从视图部分创建的。这是 module.config.php 中的配置:

我有一个带有 2 个操作的 LoginController:登录和注销。登录后,我希望用户单击注销按钮,重定向到登录页面并清除他们的会话。

现在,如果我有一个登录和注销操作,我需要一个模板。这对于注销操作似乎是不必要的——我不希望为此操作加载另一个模板。

这是我的路由配置:

是否有正确的方法可以在不加载相应模板的情况下调用操作?

0 投票
2 回答
1132 浏览

php - 如果 ACL 不允许访问页面,则 ZF2 重定向

我有构建我的 ACL 树的模块,它工作正常。

我还在 config/autoload 目录中有一个导航配置文件,它详细说明了我的应用程序结构以及与条目关联的资源。我的应用程序模块配置中还有一个导航工厂。

所有这一切都工作正常,我正在根据登录用户角色的权限和导航配置中页面的资源来呈现我的菜单。

我无法解决的是如何防止访问用户无权访问的页面(隐藏在呈现的导航菜单中的页面)。我希望这可以在一个模块中进行管理。

我假设在我的 Module.php 文件中的 onBootstrap 函数中,我需要针对 ACL 运行 isAllowed 并重定向(如在这个问题中 - Forward to another controller/action from module.php)。然而,isAllowed 似乎需要查询资源。这需要从导航配置中获得。

如果我对 isAllowed 函数中所需的资源进行硬编码,我可以让它工作。实际上,我只需要从导航配置中获取当前页面请求的资源。

我确定这一定是标准功能,但我找不到任何具体示例。

任何帮助表示赞赏。

克里斯

0 投票
1 回答
411 浏览

.htaccess - 无法让我的 Zend Framework 2 项目在托管服务器上运行

目前我正在用 PHP 开发一个网上商店。为此,我使用 Zend Framework 2。

我的所有路由都存在一个语言环境,即“nl_NL”或“en_EN”,后跟一个控制器和一个操作 www.mydomain.com/nl_NL/profile/login。在此处查看我的项目中使用的路线示例。这个属于配置文件模块: http: //pastebin.com/jmim47w8

如果访问者没有帐户,也没有设置 Cookie,则首先将 locale 变量设置为从以下函数中检索到的变量:

如果设置了 cookie,则将使用该值。另一方面,如果用户确实有一个帐户并已登录,则使用的变量将从用户的配置文件中检索。

我的整个脚本在本地主机上运行。但是,在服务器上却没有。加载页面时没有显示任何内容。我检查了错误日志,找不到任何东西。但是,当我在 url 中手动放置 /nl_NL/ 或任何其他满足“语言环境路由”正则表达式要求的语言环境时,它确实有效。

我的第一个想法是 url_rewrite apache 模块没有安装或激活,但由于其他网站也使用这个模块,而且它们在同一台服务器上,这似乎不合逻辑。当然,我确实尝试通过运行一些脚本来检查它是否已启用,但无济于事。由于我们的服务器设置为不允许运行 shell 脚本,或者使用 phpinfo() 检查是否启用了 apache 模块,因此很难确定。

我试图验证我的 .htaccess 文件是否正确,但我几乎是 .htaccess 的菜鸟。这是我的 .htaccess:

要查看我的 IndexController 的样子,请看这里: http: //pastebin.com/AEgm3Jmk

总而言之,我真的很想知道如何让 Zend FW 2 项目在托管服务器上工作,同时仍然使用 url 重写或任何其他可以使用语言环境变量的方式。

如果这篇文章中缺少一些需要进一步帮助我的东西,我很乐意发布它。