我正在努力解决问题。我有一个sitetree,其中我 - 显然 - 有页面。这些页面的类型与数据对象具有多对多关系。现在我想实现这样的目标:
/页/数据对象-蛞蝓
因此,当系统检测到url中有一个额外的“层”时,它应该将其传递给Page控制器中的预定义函数。
我可以使用$ allowed_actions,还是会干扰默认路由?它也应该能够使用通配符,因为我事先并不知道DataObject-slug。如果那是不可能的,有没有其他已知的方法来实现这个或类似的东西?
作为替代方案,我可能会做类似于/ Page / SomeAction / DataObject的事情,但这真的很难看,而且可能对客户来说是不可接受的。
另一种选择当然是使用控制器作为页面,但这将消除为用户轻松嵌套页面的可能性,并创建像/ ParentPage / Page / DataObject-slug这样的结构。
我正在使用SS 3.1.6
答案 0 :(得分:0)
我成功使用了https://github.com/NightJar/ssrigging-slug。如果您的关系是has_many或many_many并不重要,您可以使用$this->ManyManyRelationName()
它利用$url_handlers
来完成这项工作。
如果您在安装时遇到任何问题,请提供代码粘贴。