lumen怎样实现Laravel中的Route::Controller?

发布于 2022-09-01 22:50:07 字数 104 浏览 16 评论 0

如题。lumen怎样实现Laravel中的Route::Controller。
例如:Route::Controller('admin','Admin\AdminController');

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

涙—继续流 2022-09-08 22:50:07

在lumen里面是不同的设置。

  1. 你可以在routes.php里面设置:

$app->get('admin', 'AdminController@index');
  1. 开启facades功能(不推荐)。打开app.php然后:

Dotenv::load(__DIR__.'/../');
$app->withFacades();
$app->withEloquent();
柒夜笙歌凉 2022-09-08 22:50:07

我这里有一个不太完美的实现方法。

在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之类的判断。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文