Router::redirect() 已弃用

Router::redirect() deprecated

Router::redirect() is deprecated. Use Router::scope() and RouteBuilder::redirect() instead.

该消息提供了一些线索,但未在文档中找到直接答案。

直接切换到 RouteBuilder::redirect() 是不可能的,因为它不是静态函数。

好的,我终于找到问题了。一旦您正确阅读文档中的 Router::scope() 用法并注意到您得到 RouteBuilder 对象作为函数的参数,就很容易了。

文档:https://book.cakephp.org/3/en/development/routing.html#quick-tour


原始(已弃用)

Router::redirect('/old', '/new');  

Router::scope('/', function ($routes) {
    $routes->redirect('/old', '/new');
});