问题标签 [symfony-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.
php - Symfony2 路由:不允许的方法(允许:{Method})
所以在 routing.yml 我定义了以下路由以编辑和删除特定设置:
路由.yml:
在我的控制器中,我定义了正确的操作: SettingController.php:
在第二个动作中,我只需要id
andwidgetType
传递,这样我就可以查询和删除选定的记录。
当我去任何一条路线时,我都会得到以下信息:
编辑路线错误:
找不到“GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/edit/default”的路由:不允许方法(允许:POST、PUT)
删除路线错误:
未找到“GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/delete/default”的路由:不允许方法(允许:删除)
但是当我删除一个并留下另一个时,它们工作正常。我假设它的路径定义是相似的?我是否可以保持相同的路径而不出现此错误?我不明白什么?
谢谢你的帮助,安思
php - Symfony2:找不到“GET /lucky/number”的路由
我开始教程(作为新手),一切正常,直到:
http://symfony.com/doc/current/book/page_creation.html#creating-a-page-route-and-controller在步骤创建页面:路由和控制器
我创建了一个名为/var/www/html/[projekt]/src/AppBundle/Controller/LuckyController.php
但是当我打开http://[Server-IP]:8000/app_dev.php/lucky/number 时总是得到一个 404:
路由.yml
控制器
不知道错在哪里...
错误 - 未捕获的 PHP 异常 Symfony\Component\HttpKernel\Exception\NotFoundHttpException:“在 /var/www/html/[Symfony-Folder]/app/cache/dev/classes 中找不到“GET /lucky/number”的路由”。 php 行 2061
symfony - 基于身份验证将一个 url 路由到两个控制器操作
我对 Symfony 有点陌生,但我有一个易于解释的情况:
我有一个公共主页和一个私人主页。我想通过 URL“/”访问这两个
当未经身份验证的人访问地址 www.example.com/ 我希望他们被路由到 PublicController::indexAction()
当经过身份验证的用户访问地址 www.example.com/ 我希望他们被路由到 Privatecontroller::indexAction()
这可能吗?
(symfony 2.7 顺便说一句)
php - 从现有路由重定向到新路由
如果用户未登录(与 FOSUser 和 SonataAdmin 一起使用)并调用http://domain.com/app_dev.php
(dev)或http://domain.com
(prod),我正在尝试重定向,那么我希望在这两种情况下都重定向到,/login
所以我在以下位置编写了这个配置app/routing.yml
:
那行得通,但我有一个问题,因为我在控制器中有这个:
然后,当我尝试brand
使用以下链接按照示例调用路由时:http://domain.com/app_dev.php/?email=7x-xRFClkjw
(dev) 或http://domain.com/?email=7x-xRFClkjw
(prod) 我被重定向到/login
. 我最好的想法是将我的代码更改为:
然后使用路由重定向到新的/bp
而不是/
该功能(这主要是因为用户已经有大量的电子邮件具有以前共享的链接,我无法更改)。但我不知道如何写这个规则,routing.yml
因为如果我写了这个:
我将结束一个重定向循环。我还可以更改默认路由/login
的设置方式,我只是找不到正确的文档。这篇文章背后的大想法是为/
. 任何人都可以给我一些帮助吗?
作为额外信息,这是我security.yml
文件的一部分:
更新
实际上来自@emmanuel-hdz-díaz 的代码给了我另一个想法,我不需要创建内核侦听器或添加太多代码,只需在我的控制器上执行此操作即可:
我能够将用户重定向到/login
路线。
php - Symfony2 将路由定义为控制器中的注释
我需要一个专家的建议。在性能和标准方面什么是理想的?
1) 按照 Symfony 基础教程的建议在 src//Resources/config/routing.yml 中定义所有路由?
或者
2) 将控制器中的路由定义为注释?
两者似乎都是正确的并且工作正常。我的问题是证明哪个更适合性能并且更符合 symfony 标准。
php - Symfony CMF 动态路由器“无法匹配”日志
我有一个使用 Symfony CMF 路由包 1.3 的 Symfony 2.6 应用程序,我们将普通 symfony 路由和动态路由组合用于自定义存储(除其他外,下面的示例重点关注我们的动态路由器之一)。
问题是我们收到了关于路由器无法匹配动态路由的无休止的日志,当它们正常工作时。
最常见的条目是:
我们偶尔会看到
有没有办法禁用这些日志或更改我的动态路由器配置/设置,以便这些错误仅在路由实际失败时出现。
这是我的配置/设置:
而实际的动态路由器基于
如果有更好的方法来使用动态路由,我很乐意听到它:)
php - Symfony,动态路由
我有一个 symfony 项目,其中有多个皮肤/模板,它们有自己的路线,有人知道正确的设置吗?
- 每个皮肤/模板都是它自己的捆绑包,因为它不仅是皮肤和资产,还可能是某些皮肤中可能存在的服务。
- 主机名决定皮肤。
- 使用自定义 RouteLoader 加载目标包的 route.yml。
自定义 RouteLoader 完成了这项工作——但是生成的路由被缓存了,据我所知,没有办法阻止路由缓存。
一些建议是:
- 创建 /{dynamic} 路由,因此手动形成路由.. 但我不想丢弃路由器的那部分功能,或重构整个项目..
- 使用模板标识符为路由添加前缀。这将需要我加载所有 route.yml 文件,因为它们的共享路径是不可能的。
任何人?我真的不能同时进行多个项目,皮肤的数量将在 20-30 左右〜。
此设置的原因是因为它是 Content-as-a-Service .. 服务的目标,多个客户将项目用作平台,他们的设置决定使用哪些模板。
symfony - 自定义 Symfony CMF 动态路由器实现
我想将动态路由与默认控制器路由结合使用。我有一个表“页面”,其中有一列“url”,应检查传入的请求 url。如果在此表中找不到 url,则应检查默认控制器路由。
ChainRouter 应按以下顺序设置:
- 尝试将请求 url 与“页面”表中的“url”列匹配。通过该表中的数据,我知道使用哪个模板来返回响应。
- 检查默认控制器路由
我想我需要创建一个自定义动态路由器实现搜索页面表,这将是配置:
然后使用自定义的动态路由实现。但是我该怎么做呢?
symfony - Symfony2 路由结构“/”和“/news/page/{page}”
有没有办法将我的两条路线“/”和“/news/page/{page}”结合起来,这样我就不需要两条具有相同默认值的路线只显示起始页?如果一个元素有两条路线,我正在使用 knpmenubundle 并且无法将菜单项标记为活动。
symfony - 执行控制器之前的自定义授权检查
我roles
在路由设置中添加了一个新选项,用于在菜单呈现期间检查菜单项的权限。
如果我可以在执行相应的控制器之前使用该选项进行授权检查,那就太好了。
例子:
在执行控制器本身之前,我需要检查用户是否可以根据他的角色访问控制器。
怎么可能?有任何想法吗?
更新
为什么我需要这个roles
选项?
项目中有4个不同的角色和许多路线。某些路由受保护并且仅对具有特定角色的用户可见。
目前所有的授权检查都是在控制器内部通过denyAccessUnlessGranted()
方法执行的。
我还使用KnpMenuBundle来构建菜单。在菜单渲染期间,我需要检查当前登录用户的每个项目的可访问性。如果用户无权访问某个项目,则该项目将被排除并且用户看不到它。
为了检查用户是否可以访问某个项目,我添加了我提到的选项,我在其中定义了可以访问路由的角色。此roles
选项定义的角色与签入中的角色完全相同denyAccessUnlessGranted()
. 而且我认为既然我已经有了这些角色设置,为什么不将它用于控制器授权检查并从中删除冗余代码。