问题标签 [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.

0 投票
0 回答
249 浏览

php - 当路由具有查询字符串时,Symfony 中的 ResourceNotFoundException

奇怪的问题

所以在我的管理包中,我有这样的路线:

这在访问页面时效果很好/media

除非我向路由添加查询字符串。像这样:/media?q=searchTest。事实上,当我对管理包中的任何路由执行此操作时,它总是返回一个ResourceNotFoundException

这是纯文本堆栈跟踪

POST 工作,但查询字符串根本不会出于任何原因。

有任何想法吗?

0 投票
1 回答
27 浏览

symfony - 用定义的路径覆盖变量路径

我正在使用 fos userbundle 为路由创建页面/profile。现在我也希望能够看到其他用户的个人资料,所以我创建了自己的控制器来生成/profile/{username}.

我现在遇到的问题是我不能使用 fos userbundle path /profile/edit。它确实显示了路径route:debug

有什么方法可以让路由/profile/edit 例外?

这是我的控制器:

谢谢你:)

0 投票
2 回答
93 浏览

php - Symfony2 路由之前的重定向

我正在开发一个高流量/高搜索引擎优化的网络。现在我们只是在动作开始时进行重定向,但它有点慢。

有没有办法在路由之前挂钩并在那里进行重定向(我们已经进行了 Redis 查询以了解 URL 是否为 301)?也许在Symfony之前就这样做了。

0 投票
2 回答
498 浏览

php - 使用 URI 值映射路由器占位符

我不知道如何解释,所以请放轻松。

路由器持有uri变量键

浏览器地址栏中的 URI

如何编写将路由器占位符变量与 URI 匹配值映射的代码。例如

请如果您理解可以将我重定向到正确的资源。

0 投票
2 回答
623 浏览

php - 在 symfony2 中检查路由

我想学习 symfony 并开始创建一个小应用程序。我有一个与路线有关的问题。所以,我在我的项目中有路线:

/admin/homepage, /admin/news,admin/galery

不,如果我写在 url /admin,这条路线不存在,我得到错误No route found for "GET /admin/"。是否存在检查路由是否不存在并重定向到另一条路由的方法?提前谢谢,对不起我的英语我的路线:

0 投票
4 回答
15253 浏览

php - Symfony 3 将所有路由重定向到当前语言环境版本

我正在开发一个 symfony 应用程序,我的目标是无论用户在哪个页面上,它都会导航到页面的区域设置版本。

例如,如果用户导航到“/”主页,它将重定向到“/en/”

如果他们在 "/admin" 页面上,它将重定向到 "/en/admin",这样_locale属性是从路由设置的。

如果他们从用户浏览器访问/admin,它还需要确定语言环境,因为没有确定语言环境,因此它知道要重定向到哪个页面。

目前我的默认控制器如下所示,因为我正在测试。我正在使用开发模式和分析器来测试翻译是否正确。

在此处输入图像描述

如果用户导航到那里,当前的方法将使用户保持在“/”,但我想让它重定向到“/en/”。这也适用于其他页面,例如 /admin 或 /somepath/pathagain/article1 (/en/admin , /en/somepath/pathagain/article1)

我该怎么做?

我读过的参考文献没有帮助:

Symfony2 在路由中使用默认语言环境(一种语言的一个 URL)

Symfony2 路由中的默认语言环境

::更新::

我还没有解决我的问题,但我已经接近并学习了一些提高效率的技巧。

DefaultController.php

配置.yml

注意参数下的值app.locales: en|es|zh。现在,如果我打算在将来支持更多语言环境,我可以在创建路线时参考这个值。对于那些好奇的人,这些路线是英语,西班牙语,中文。在注释中的 DefaultController 中,"%app.locales%"是引用配置参数的部分。

我当前方法的问题是转到/admin,例如不会将用户重定向到/{browsers locale}/admin,这将是保持一切井井有条的更优雅的解决方案......但至少路由有效。仍在寻找更好的解决方案。

****更新****

我想我可能在这里找到了答案作为给出的底部答案(向所有路线添加区域设置和要求 - Symfony2),Athlan 的答案。只是不确定如何在 symfony 3 中实现这一点,因为他的指示对我来说不够清楚。

我认为这篇文章也可能有所帮助(http://symfony.com/doc/current/components/event_dispatcher/introduction.html

0 投票
1 回答
216 浏览

php - @param 关键字在 symfony 路由中有什么作用

在路线的注释中,@param 是什么意思?

我在 symfony 网站上找不到任何关于这个关键字的文档,并且对它的用途和作用感到非常困惑。

我之所以问,是因为我试图弄清楚如何访问 .yml 文件中的参数以在路由中使用,但我仍想使用注释而不是 YML 路由方法。

显示代码示例可能不是最好的,但这里是 @param 出现的地方

我从这里(带有可选参数的注释中的 Symfony2 路由

任何帮助表示赞赏,谢谢!

0 投票
2 回答
949 浏览

php - 用户提交表单,但在他注册或登录之前不要保存

我有很多用户在单页上填写的表单,但是在用户发布后,控制器将检查表单是否有效以及用户是否已经登录然后保存信息。

需要帮助

如果用户未登录,则将他重定向到他注册的注册页面,注册后他将自动登录,然后它应该返回到带有发布值的同一个控制器,以便可以保存它。

  • $form->isValid && !$this->getUser()然后将用户重定向到使用保存在会话中的此表单值的注册页面?
  • 用户注册或登录后,然后返回上一个控制器(无需任何进一步操作),它应该会自动保存之前提交的表单。因为它是$form->isValid()

我很困惑,我应该在会话中保存表单值并重定向吗?它会正确保存模型值吗?

另外我应该如何将用户重定向到注册页面,同时告诉 Symfony 在登录后使用 post 方法返回同一页面。

0 投票
1 回答
136 浏览

symfony - Symfony2 和 Nginx,按主机名路由

我有一个名为 SymfonyProject 的 Symfony2 项目。

到目前为止,我有一个指向该项目的 nginx 配置文件www.symfonyproject.com

我在 SymfonyProject 中开发了一些静态树枝页面,我想用另一个 url 访问它们:www.symfonyproject2.com

所以,www.symfonyproject2.com 只会从 SymfonyProject 访问一条路由。

如何用 Nginx 做到这一点?我在启用的站点中创建了另一个配置文件,但不知道如何将流量重定向到特定的 symfony2 路由。

0 投票
1 回答
456 浏览

php - 如何调试(和修复)Symfony2|3 路由?

app/config/routing.yml在 Symfony 2.8 应用程序中定义了这些路由:

正如您可能已经注意到PlatformAdminBundle的是后端和PlatformChatBundle前端。考虑到这一点,我正在尝试设置并为两者使用一个防火墙,然后将security.interactive_login事件重定向到正确的路由|路径。这是防火墙的样子:

但这不起作用,因为当我尝试以任一用户身份登录时,都会出现以下错误:

您必须在安全防火墙配置中使用 form_login 配置要由防火墙处理的检查路径。

这让我觉得路由或防火墙没有正确配置。我检查了调试工具栏下的路线,没有匹配,所以它们是错误的。我在这里阅读了文档,但它根本没有帮助,我没有得到解决问题的方法。你可以把这篇文章作为这篇文章的第二部分,但我不想改变旧文章的主题,也不想改变内容,因为我认为这对其他人的未来会有所帮助。所以,有什么建议吗?您将如何调试与路由相关的此类问题?任何解决我的特定问题?我真的被困在这里了!

更新

我已经按照@xabbuh 的建议进行了更改,所以现在app/config/routing.yml看起来像:

和``看起来像:

清除缓存后,这是我的尝试和结果:

  • 登录身份ROL_CHATTER:我http://domain.tld/app_dev.php/chat/将按预期获得登录表单并使用有效凭据我收到以下消息:访问被拒绝。你在喋喋不休。这是正确的,因为我有一个监听security.interactive_login器,这就是用户使用这些凭据登录时我正在做的事情。
  • 登录身份ROL_ADMIN:我http://domain.tld/app_dev.php/admin/将按预期获得登录表单并使用有效凭据我收到以下消息:错误凭据。这是错误的,因为凭据是有效的,至少我应该收到另一条消息(访问被拒绝。您是管理员),因为监听器在security.interactive_login但正如我所说的那样,这不是正在发生的事情。

与听众有关的信息在这篇文章中。怎么了?