php Laravel工艺路线:域组中的路由在本地环境中也可见

z4bn682m  于 2023-01-08  发布在  PHP
关注(0)|答案(1)|浏览(157)

我需要什么:我的应用具有公共域只有在远程域为domain1.com且位于本地环境中时,才应打开管理控制器中的所有路由。

    • 目前:**如果我将管理面板路由放在组中,它在本地环境中将不可见,这使得开发变得困难。
// My secret domain, accessible only for admins
Route::group(['domain'=>'domain1.com'],function(){

    Route::get('admin-panel', [App\Http\Controllers\Control\AdminController::class, 'admin_panel']);

});

// To be accessible both in domain1.com and domain2.com:
Route::get('homepage', [App\Http\Controllers\Control\PagesController::class, 'homepage']);

溶液

我目前的解决方案:我在路由文件web.php中添加了额外行

if( \App::environment() == 'local') {
    Route::get('admin-panel', [App\Http\Controllers\Control\AdminController::class, 'admin_panel']);
}

但这是一个粗糙的临时解决方案。
待办事项:

  • 在路由文件中或在控制器中。控制器中的过滤器(对于所有或选定的方法)是最好的。
  • if子句,用于检查环境是本地环境还是域是domain1.com

谢谢你。

k3fezbri

k3fezbri1#

我认为laravel不支持这样的东西。但是你可以声明一个函数变量的路由,然后在每个域中使用它。

$adminRoutes = function() {
    Route::get('admin-panel', [App\Http\Controllers\Control\AdminController::class, 'admin_panel']);
};

Route::group(array('domain' => 'domain1.com'), $adminRoutes);
Route::group(array('domain' => 'localhost'), $adminRoutes)

相关问题