问题标签 [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.
symfony - How does the login check_path route work without default controller/action?
I am working on symfony 2.3 project having the following routing code
It doesn't have
But it is working. But I don't know how the routing is working. Is it possible? Please advice me about the routing.
php - Symfony2 没有拾取多个路由 yml 文件/导入在 yml 文件中不起作用
所以首先 TL:DR - Symfony 没有在我的包中获取额外的路由文件。不知道为什么。尝试像在 config.yml 中那样进行导入,但它也不起作用
我有多个控制器来维护我的代码。即所有与站点相关的操作都在一个 SiteController 中,所有与应用程序相关的操作都在一个 AppController 中,等等。
所以我想我会制作路由文件以与我的控制器相对应。这些文件位于 MyBundle/Resources/config 中。问题是当我执行 php app/console router:debug 时它们没有被拾取。所以我想,好吧,我将它们导入到 symfony 在 generate:bundle 过程中生成的 routing_mybundle.yml 文件中。所以我做了以下事情:
我收到一条错误消息,上面写着:
routing_mybundle.yml 包含“import”不受支持的键:“0”、“1”。预期之一:“resource”、“type”、“prefix”、“pattern”、“path”、“host”、“schemes”、“methods”、“defaults”、“requirements”、“options”。
我意识到它正在寻找特定的键,但我不确定为什么它会在 config.yml 而不是在 routing.yml 文件中工作。
如果我执行以下操作,它会起作用:
或者,如果我在它工作的文件中“链接”导入。所以我的意思是我将routing_app导入routing_site,将routing_site导入routing_mybundle。
任何人都知道如何让导入标签工作,或者如何让 symfony 接收我的 routing_ * *.yml 文件?
谢谢 :)
编辑:
感谢遗忘的回答。对于那些和我有同样问题的人(同一个包中的多个配置文件),这是我在 myBundle/Resources/config 中的 routing.yml 文件中必须做的事情。
我的目录结构看起来像
所以我不得不做以下事情
再次感谢
symfony - 错误:“找不到“GET /web/app_dev.php”的路由”
我使用命令创建了一个捆绑包,该命令php app/console generate:bundle
将捆绑包添加/app/AppKernel.php
到/app/config/routing.yml
. 如果我尝试访问该 URL http://devserver/web/app_dev.php/bank_homepage
,则会收到 404 错误。我检查/app/logs/prod.log
并看到这个:
[2013-07-29 13:41:27] request.ERROR:未捕获的 PHP 异常 Symfony\Component\HttpKernel\Exception\NotFoundHttpException:“在 /var/ 处找不到“GET /web/app_dev.php/bank_homepage”的路由” www/html/app/cache/prod/classes.php 第 1880 行 {"exception":"[object] (Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for \"GET /web/app.php/bank_homepage \" 在 /var/www/html/app/cache/prod/classes.php:1880, Symfony\Component\Routing\Exception\ResourceNotFoundException: 在 /var/www/html/app/cache/prod/appProdUrlMatcher.php:第1222章
我做错了什么?
这是我的/app/config/routing.yml
这是我的/src/BankBundle/Resources/config/routing.yml
编辑一些测试
,我将 URL 从更改http://devserver/web/app_dev.php/bank_homepage
为http://devserver/web/app_dev.php
,然后错误更改为:
[2013-07-29 14:22:15] request.ERROR:未捕获的 PHP 异常 Symfony\Component\HttpKernel\Exception\NotFoundHttpException:“在 /var/www/ 处找不到“GET /web/app_dev.php”的路由” html/app/cache/prod/classes.php 第 1880 行 {"exception":"[object] (Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for \"GET /web/app_dev.php\" at / var/www/html/app/cache/prod/classes.php:1880, Symfony\Component\Routing\Exception\ResourceNotFoundException: at /var/www/html/app/cache/prod/appProdUrlMatcher.php:1222)"} []
这实际上是相同的
PS:我检查(this)[没有找到“GET /portfolio”的路线,但这对我不起作用
regex - 匹配 Symfony 2 的确切路径,而不仅仅是前缀
我有以下路线
(其实还有更多,但这两个就足够了。)最后一个路由应该是在主机名重定向到登录表单后重定向所有访问网站的人。
问题是最后一个路由规则中的路径“/”匹配每条路径,因为每条路径都以“/”开头。结果是无限重定向循环。
我读到路径被解释为正则表达式,所以我尝试了模式“^/$”。但这导致了 PHP 错误。然后我尝试转义特殊的正则表达式符号“^”和“$”,即“\^/\$”。但这也不起作用。
symfony - Symfony2 多语言站点的 URL 翻译和结构
如何根据Symfony2中的用户区域设置动态 url 结构?
我解释得更好...问题不在于 URL 的语言前缀更改。它运作良好。问题在于 URL 的“静态”部分。
例如在 EN 我想要这个 url
在 IT 这个
此外,它应该像树枝链接中的 URL 前缀一样自动更改
实际上,在这里,它会根据所选语言自动添加 IT 或 EN,但显然,静态片段“about-us”始终保持不变。
也许这可能是一个愚蠢的问题,但我不明白如何放置捆绑结构或是否有某种方法来管理这件事。
虽然关于翻译没有问题,实际上它根据translations/messages.en.xliff文件将单词更改为twig,我的问题只是出现在静态链接更改中。
php - 如何在 symfony 路由中自动化函数名?
这是自定义包中定义的简单路由
上面的路由代码将调用CustomControlController
's 方法loginAction()
我的问题是我如何在路由中自动化函数名称,就像对于每个函数我不必再次定义路由应该有一个路由并按照定义{name}
的参数自动调用函数路线如下
php - 如何将子域指向特定捆绑包?
如何将子域指向特定的捆绑包。我有这个vhost
:
这/etc/hosts
:
这app/routing.yml
:
这样,两个子域都转到Subdomain1Bundle
.
symfony - Symfony2 - 两个不同 URL 的相同路由名称
在我的 Synfony2 wep 应用程序中,同一个用户可以拥有两个不同的角色。他可以是雇员,也可以是老板。所以,我想要一个切换按钮来改变角色,以便用户对数据有不同的看法。例如,如果有老板,用户会看到项目中的工作进度,而作为员工,他会看到同一项目中团队的每个成员要完成的工作。所以基本上,老板对某些行动有特权,而员工对其他一些行动有特权。
我应该如何进行角色之间的切换?我计划为每个角色设置两个不同的 url/boss/todes
和employee/todos
. 在某些情况下,我会使用相同的树枝模板(例如待办事项列表)。当我需要生成 URL(例如/boss/todos/{id}
始终指定相同的 route_name )时,我该怎么做path('todo_show', {'id': id})
。
_locale
我认为它与参数非常相似。是否可以创建类似于_locale
Symfony 2.3 中的自定义参数?
提前致谢 !
symfony - 带有多个参数的翻译 Symfony 路由
正如标题所示,我将 Symfony 与JMSTranslationBundle和JMSI18nBundle结合使用,以提供翻译后的路由。
这是我当前配置的路线:
/{location}/{profession}/{specialty}
所以路线
/berlin/arzt/allgemein
已成功推送到正确的控制器和操作。
JMSI18nBundle 会自动为我的英语路由添加 /en/ 前缀。这适用于具有非动态组件(例如/profile/{slug}/
)的所有其他路由。但是,当使用上述示例的英文版本时,这不起作用。IE
/en/berlin/doctor/general
我猜路由器没有正确读取这个作为正常路由的英文版本,而是尝试分配 location = en、professional = berlin 等,这显然是不正确的。
我已经尝试为翻译定义可选参数、更复杂的正则表达式和斜杠(所有这些都带有缓存刷新)。这些都不起作用。什么工作,是插入一个毫无意义的非动态组件,即/en/s/berlin/doctor/general
等
作为业务需求的一部分,我们不想要这个额外的无意义的非动态 URL 组件。
所以,我的问题是:如何在 Symfony 中使用(前缀)可翻译的 URL,只包含动态字段?
非常感谢您的帮助!