扫码关注官方订阅号
如题。lumen怎样实现Laravel中的Route::Controller。例如:Route::Controller('admin','Admin\AdminController');
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
在lumen里面是不同的设置。
你可以在routes.php里面设置:
$app->get('admin', 'AdminController@index');
开启facades功能(不推荐)。打开app.php然后:
Dotenv::load(__DIR__.'/../'); $app->withFacades(); $app->withEloquent();
我这里有一个不太完美的实现方法。
在controller中添加一个函数:
public function routeDispatch(Request $request, $action = 'index') { $action = strtolower($request->getMethod()) . ucfirst($action); if (method_exists($this, $action)) { return $this->$action($request); } throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException; }
然后将路由定向到这个方法,比如:
$app->addRoute(['GET', 'POST'], 'route[/{action:.+}]', 'RouteController@routeDispatch');
这种实现的问题就是,首先按照我的routeDispatch的实现方式不能再注入额外的参数了。其次,如果你有 middleware,它还是会先执行middleware的检查,然后才会404之类的判断。
routeDispatch
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
在lumen里面是不同的设置。
你可以在routes.php里面设置:
开启facades功能(不推荐)。打开app.php然后:
我这里有一个不太完美的实现方法。
在controller中添加一个函数:
然后将路由定向到这个方法,比如:
这种实现的问题就是,首先按照我的
routeDispatch
的实现方式不能再注入额外的参数了。其次,如果你有 middleware,它还是会先执行middleware的检查,然后才会404之类的判断。