【发布时间】:2018-03-20 14:20:03
【问题描述】:
我有一个 CakePHP 3.5 网站。设置 slugs 是必要的,没有像 /pages/slug 这样的任何 url 前缀,所以我写了以下规则:
$routes->connect(
'/:slug',
['controller' => 'Pages', 'action' => 'redirectPage']
)
->setMethods(['GET', 'POST'])
->setPass(['slug'])
->setPatterns([
'slug' => '[a-z0-9\-_]+'
]);
它工作得很好,但在某些情况下,我希望 cakePHP 作为默认路由(控制器/动作/参数)。例如,我希望 /admin/login 在 'AdminController' 中调用 'login' 操作。 我有两个不需要精确路由的想法,但我无法让它们中的任何一个起作用:
- 按模式过滤一些字符串:如果我能过滤一些字符串就好了,如果 slug 与模式不匹配,它将简单地跳过路由规则。
-
创建一个 '/admin/:action' 路由规则,但是我不能使用 :action 作为操作变量。它会导致错误。
$routes->connect( '/admin/:action', ['controller' => 'Admin', 'action' => ':action'] )
有什么想法吗? 谢谢
【问题讨论】:
标签: cakephp cakephp-3.0