我有两种内容类型,但我不想在URL中使用contenttype slug。因此,两个contenttypes应匹配/{slug}
,但从不同的内容类型中获取内容。
所以我虽然创造了两条路线,如果第一条路线失败,它会尝试第二条路线:
# match on any landingpage created as a contenttype landingpage
landingpagebinding:
path: /{slug}
defaults:
_controller: controller.frontend:record
contenttypeslug: landingpage
contenttype: landingpage
# match on any actionpage created as a contenttype actionpage
actionpagebinding:
path: /{slug}
defaults:
_controller: controller.frontend:record
contenttypeslug: actionpage
contenttype: actionpage
所以我有:
目标网址正常,操作页面出现404错误
landingpage / this-is-my-actionpage not found。
为什么我在landingpagebinding
上获得404?我预计它会继续到下一个路线actionpagebinding
并尝试匹配。如果还没找到,那我想要404错误!
注意:我知道当两个内容类型具有相同的slug时,第一个将匹配。但这不是问题。
答案 0 :(得分:0)
我遇到了同样的问题。你必须编写一个函数来获取下一个slug如果找不到之前的那个。
什么螺栓只是检查第一个选项然后停止。你必须编写一些函数,让它继续阅读,直到找到想要的文件。