Router::redirect() 已弃用

问题描述

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');
});