Laravel单一应用程序,但用于前端和管理区域

时间:2017-09-22 15:27:22

标签: php laravel laravel-5

如果我将在Laravel上创建一些应用程序(例如它将是project.com),并且在同一个应用程序中,我将开发管理区域(使用ACL,用户管理等)。我可以将它作为project.com用于前端,但backoffice.project.com用于同一应用程序中的管理区域吗? 感谢。

2 个答案:

答案 0 :(得分:1)

您可以在同一个Laravel项目中维护这两个应用程序,并使用分组路径并按域过滤您的路线。

Route::group(['domain' => 'backoffice.project.com'], function () {
   // your BACKEND routes...
});

Route::group(['domain' => 'www.project.com'], function () {
   // your FRONTEND routes...
});

您也可以使用中间件来补充路由配置。

// in this case all backend routes will be passed to auth middleware.
Route::group(['domain' => 'backoffice.project.com', 'middleware' => 'auth'], function () {
   // your BACKEND routes...
});

重要的:

观察Laravel documentation关于子域路由的讨论。在这种情况下,文档的方法是使用动态子域,如以下示例所示。

Route::domain('{account}.myapp.com')->group(function () {
    Route::get('user/{id}', function ($account, $id) {
        //
    });
});

在这种情况下,{account}是一个可以在路由组内使用的路由参数。

您可以在此处查看(并阅读)有关Laravel路线的更多信息:https://laravel.com/docs/5.5/routing

答案 1 :(得分:0)

是的,您可以按域分组路线。

从Laravel 5.3开始,您可以将它们分组:

Route::domain('project.com')->group(function () {
    // Your frontend routes
});

Route::domain('backoffice.project.com')->group(function () {
    // Your backend routes
});

在Laravel 5.3之前,您可以将它们分组:

Route::group(['domain' => 'project.com'], function () {
    // You frontend routes
});

Route::group(['domain' => 'backoffice.project.com'], function () {
    // You backend routes
});