【发布时间】:2020-09-03 16:04:54
【问题描述】:
我想使用这里所说的路由本地化https://codeigniter.com/user_guide/outgoing/localization.html#in-routes
所以我需要添加路由规则,例如:
$routes->get('{locale}/books', 'App\Books::index');
但我想为所有控制器制定此规则 - 而不是为所有控制器指定规则。所以我添加了规则:
$routes->add('{locale}/(:segment)(:any)', '$1::$2');
我有控制器 Login 和方法 index()。当我去mydomain.com/Login 方法index() 加载成功。但是当我转到mydomain.com/en/Login(因为我希望使用我的路线)时,我收到了 404 错误消息 - “找不到控制器或其方法:\App\Controllers$1::index”。但是语言环境已正确定义和设置。
如果我将路由更改为$routes->add('{locale}/(:segment)(:any)', 'Login::$2');,那么mydomain.com/en/Login 会根据我的需要成功加载。但是通过这种方式,我必须为每个控制器设置路由,并且我想设置 一个 路由以与所有控制器一起使用。
是否可以通过设置动态控制器名称来设置路由?
【问题讨论】:
标签: php codeigniter-4