How does the Laravel framework divide applications into frontend and backend? Do you use routing groups?
Ailon
Ailon 2017-08-26 15:02:07
0
1
1470
Ailon
Ailon

reply all(1)
Ty80

Find the app/providers/RouteServiceProvider.PHP file


<?php
namespace App\Providers;
use Illuminate\Routing\Router;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider 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 = 'App\Http\Controllers';
    protected $backendNamespace;
    protected $frontendNamespace;
    protected $apiNamespace;
    protected $currentDomain;
    /**
     * Define your route model bindings, pattern filters, etc.
     *
     * @param  \Illuminate\Routing\Router $router
     * @return void
    */
    public function boot(Router $router)
    {
        $this->backendNamespace = 'App\Http\Controllers\Backend';
        $this->frontendNamespace = 'App\Http\Controllers\Frontend';
        $this->apiNamespace = 'App\Http\Controllers\API';
        //$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  \Illuminate\Routing\Router $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;
        }
    }
}

After completion, our route can also be created, but it must be the same as the name above

You can write it like this in the route (of course you can also customize the route) Example :

Route::group(['middleware' => ['web']], function () {   
    Route::controller('/test', 'TestController');  
    // 重置  
    Route::get('user/password/reset/{token?}', [
        'as' => 'user.password.reset@token', 
        'uses' => 'User\PasswordController@getReset'  
    ]);  
]);


Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template