我使用Silverstripe 3.4.0构建了一个网站,该网站应对各种帖子进行排序和汇总。我没有尝试构建控制器操作以将这些后期数据对象显示为页面。但是,我似乎无法通过测试我的功能来实际显示帖子。
帖子应该属于具有自己父页面的TopicAggPage。因此,所有帖子链接的结构应为www.domain.org/parentpage/childpage/post/$ID
以下是相关代码:
routes.yml:
---
Name: mysiteroutes
After: framework/routes#coreroutes
---
Director:
rules:
'$Controller//$Action/$ID/$OtherID': '*'
TopicAggPage.php:
class TopicAggPage_Controller extends Page_Controller {
private static $allowed_actions = [
'post',
];
private static $url_handlers = [
'post/$Slug' => 'post'
];
}
问题是,使用上面结构化的url并不会将我引导到TopicAggPage_Controller。我可以使用www.domain.org/TopicAggPage_Controller/post/$ID访问控制器,但这不是网址应该寻找网站的方式。
我很困惑为什么来自Silverstripe IRC的其他人能够以相同的代码以我想要的方式工作,但我的需要控制器名称。特别是因为我在控制器本身中设置了url_handler的备份选项。任何指导都将不胜感激。