laravel框架怎样实现前后端分离路由?
发布时间:2022-03-15 14:03:43 所属栏目:语言 来源:互联网
导读:laravel框架怎样实现前后端分离路由?如果我们将路由全部写在一个文件,无疑会显得路由杂乱不堪,也不利于维护。因此我们需要对laravel路由分离。下面是实现步骤: 实现步骤: 1、首先在app/Https/Controlles/文件下建立 Frontend(前端) Backend(后端) API(
laravel框架怎样实现前后端分离路由?如果我们将路由全部写在一个文件,无疑会显得路由杂乱不堪,也不利于维护。因此我们需要对laravel路由分离。下面是实现步骤: 实现步骤: 1、首先在app/Https/Controlles/文件下建立 Frontend(前端) Backend(后端) API(接口) 文件 2、在app/Https/建立对应的路由文件 3、打开app/Providers/RouteServiceProvider.php 定义各个功能对应的路由文件 代码如下: <?php namespace AppProviders; use IlluminateRoutingRouter; use IlluminateFoundationSupportProvidersRouteServiceProvider as ServiceProvider; class RouteServiceProvider extends ServiceProvider { /** * This namespace is applied to the controller routes in your routes file. * * In addition, it is set as the URL generator's root namespace. * * @var string */ protected $namespace = 'AppHttpControllers'; protected $backendNamespace; protected $frontendNamespace; protected $apiNamespace; protected $currentDomain; /** * Define your route model bindings, pattern filters, etc. * * @param IlluminateRoutingRouter $router * @return void */ public function boot(Router $router) { // $this->backendNamespace = 'AppHttpControllersBackend'; $this->frontendNamespace = 'AppHttpControllersFrontend'; $this->apiNamespace = 'AppHttpControllersAPI'; // $this->currentDomain = $this->app->request->server->get('HTTP_HOST'); $this->currentDomain = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ""; parent::boot($router); } /** * Define the routes for the application. * * @param IlluminateRoutingRouter $router * @return void */ public function map(Router $router) { // $router->group(['namespace' => $this->namespace], function ($router) { // require app_path('Http/routes.php'); // }); $backendUrl = config('route.backend_url'); $frontendUrl = config('route.frontend_url'); $apiUrl = config('route.api_url'); switch ($this->currentDomain) { case $apiUrl: // API路由 $router->group([ 'domain' => $apiUrl, 'namespace' => $this->apiNamespace], function ($router) { require app_path('Http/routes-api.php'); } ); break; case $backendUrl: // 后端路由 $router->group([ 'domain' => $backendUrl, 'namespace' => $this->backendNamespace], function ($router) { require app_path('Http/routes-backend.php'); } ); break; default: // 前端路由 $router->group([ 'domain' => $frontendUrl, 'namespace' => $this->frontendNamespace], function ($router) { require app_path('Http/routes-frontend.php'); } ); break; } } } 此时只需要在不同的控制器中建立路由就 Ok了。 (编辑:周口站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |