首页 > 解决方案 > Laravel 8 路由子域

问题描述

我是使用 Laravel 8 的新手。在以前的 Laravel 版本 7 中,我们可以通过这种方式传递子域名

    Route::group( [ 'domain' => '{admin}.example.com' ], function () {
        Route::get('/index', 'HomeController@index($account)' );
    }

但是,在 Laravel 8 中调用Controller的结构代码是这样改变的。

    Route::domain('{admin}.example.com')->group(function () {
        Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
    });

我一直在寻找文档,但没有找到。你能告诉我文档或帮助我将子域web.php发送/传递到控制器吗

标签: phplaravelsubdomain

解决方案


您可以简单地向控制器方法添加一个与路由参数同名的参数。Laravel 负责在后台绑定变量。

它没有在文档中明确显示参考控制器,但有一个基本示例。 https://laravel.com/docs/8.x/routing#route-group-subdomain-routing

下面是一个带有控制器的示例。

Route::domain('{subdomain}.example.com')->group(function () {
    Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
});
class HomeController 
{
    public function index($subdomain)
    {
        dd($subdomain);
    }
}

://admin.example.com/home

"admin"

推荐阅读