【发布时间】:2013-08-23 14:23:41
【问题描述】:
是否可以在 CakePHP 中应用全局路由?
例如:
Router::connect('/:controller/:action/:token',
array('controller'=>'App'),
array(
'pass' => array('token')
)
);
这个想法是,如果一个名为 token 的 NAMED 参数被传递到任何由 App Controller 处理的 URL(应该是一切),它会像这样处理它:
/users/login/123abc 其中 123abc 是令牌。
以及我如何通过分页为我的 Notes 控制器完成此操作的示例:
Router::connect('/notes',
array('controller'=>'notes','action'=>'index', 'page' => 1),
array(
'pass' => array('page')
)
);
Router::connect('/notes/page/:page',
array('controller' => 'notes', 'action' => 'index'),
array(
'pass' => array('page'),
'page' => '[1-9]+'
)
);
这使得 URL 像:
/notes/page:1变成/notes/page/1
问题是我必须为每个动作和控制器执行此操作,并希望将其设为全局,以便适用于所有控制器和动作。因此,我将应用控制器作为路由参数进行了实验。
【问题讨论】:
-
我们是否应该假设您尝试过,但没有成功?它给你一个错误......等等?