我为我的应用程序编写了静态页面组件,管理员可以在其中动态添加/编辑/删除静态内容页面。这些都保存在数据库中。
(例如,您可以创建一个名为“about”的页面,并可以在 myapplication/about 中访问它)
这是我对这些页面的路由:
$page = new StaticPage();
$slugs = $page->find('list', array(
'fields' => array('slug'),
'recursive' => -1,
'order' => 'StaticPage.slug DESC',
));
Router::connect('/:slug',
array('controller' => 'static_pages', 'action' => 'display'),
array(
'pass' => array('slug'),
'slug' => implode($slugs, '|')
)
);
现在我有一个问题,当您创建一个与现有控制器(例如用户)匹配的页面时,它会覆盖用户控制器的路由。
所以我需要一个黑名单或类似的东西:我开始写一个验证规则,我想检查那个控制器是否存在。对于 cake 1.3,有一个函数“loadController”,如果控制器不存在,则返回 false,但对于 cake 2.x,没有这样的函数。我想念这个吗?它有新名称还是现在在实用程序库中?
还是有更好的方法来解决这个问题?