Php 是否可以在CodeIgniter 4中的路由中使用动态控制器名称?
我想使用这里说的路线本地化 因此,我需要添加如下路由规则:Php 是否可以在CodeIgniter 4中的路由中使用动态控制器名称?,php,codeigniter-4,Php,Codeigniter 4,我想使用这里说的路线本地化 因此,我需要添加如下路由规则: $routes->get(“{locale}/books”,“App\books::index”) 但我想为所有控制器制定此规则,而不是为所有控制器指定规则。所以我增加了规则: $routes->add(“{locale}/(:segment)(:any)”,“$1::$2”) 我使用方法index()让控制器登录。当我转到mydomain.com/Login时,方法index()已成功加载。但是,当我转到mydomain.com/en
$routes->get(“{locale}/books”,“App\books::index”)代码>
但我想为所有控制器制定此规则,而不是为所有控制器指定规则。所以我增加了规则:
$routes->add(“{locale}/(:segment)(:any)”,“$1::$2”)代码>
我使用方法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
按我的要求成功加载。但是用这种方式,我必须为每个控制器设置路由,并且我想设置一个路由来与所有控制器一起工作
是否可以通过设置动态控制器名称来设置路由?我不确定是否可以直接设置路由,但这里有一个解决方法:
$routes->add(“{locale}/(:segment)/(:any)”,“Rerouter::reroute/$1/$2”)代码>
然后,您的重新外部
类如下所示:
是的,我也这么认为-最好有一个端点,所有请求都将通过它。但当我试图获取类的实例时,我得到了一个错误——找不到类“User”。MyRerouter
类和MyUser
类是同一命名空间中的控制器App\controllers
代码>然后它可以正常工作。动态$className由于某些原因无法工作。其他选项:转到CodeIgniter论坛,将您的问题更改为功能请求。我认为它应该包含在框架中!