我开始使用Symfony。我试图用slugs设置路由并遇到问题。
当我输入没有slug而没有最后一个斜线 site.me/lucky/number 时,它没问题。 但是当我用睫毛斜线 site.me/lucky/number / 输入没有slug时,我得到404页面。 我找到了一个解决方法,附加了" root"路由,可以在我的路由文件中看到。
是否可以使用单个路线条目? 是否可以使用多个路由进行相同的操作?类似于创建配置的单个路径条目的链接,因此我不必在许多路径条目中进行类似的更改。
我在ubuntu 16上使用php内置服务器。
<!-- routing.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing
http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="homepage" path="/">
<default key="_controller">AppBundle:Default:index</default>
</route>
<route id="lucky_number_root" path="lucky/number/">
<default key="_controller">AppBundle:Lucky:number</default>
<default key="max">100</default>
</route>
<route id="lucky_number" path="lucky/number/{max}">
<default key="_controller">AppBundle:Lucky:number</default>
<default key="max">100</default>
<requirement key="max">\d+</requirement>
</route>
</routes>
答案 0 :(得分:0)
您是否尝试过将routing.xml文件更改为以下内容:
<route id="lucky_number" path="/lucky/number/{max}/">
<default key="_controller">AppBundle:Lucky:number</default>
<default key="max">100</default>
<requirement key="max">\d+</requirement>
</route>
我认为这可能会奏效 - 试试吧。刚刚添加了反斜杠。
编辑#2 注意:前面缺少反斜杠 - 尝试
答案 1 :(得分:0)
使max
参数可选<requirement key="max">\d*</requirement>
<!-- routing.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing
http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="homepage" path="/">
<default key="_controller">AppBundle:Default:index</default>
</route>
<route id="lucky_number_root" path="lucky/number/">
<default key="_controller">AppBundle:Lucky:number</default>
<default key="max">100</default>
</route>
<route id="lucky_number" path="lucky/number/{max}">
<default key="_controller">AppBundle:Lucky:number</default>
<default key="max">100</default>
<requirement key="max">\d*</requirement>
</route>
</routes>
您也可以在这种情况下删除lucky_number_root
路由