Laravel 8 路由子域

Moc*_*nto 4 php subdomain laravel

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

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

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

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

我一直在寻找文档,但尚未找到。您可以向我展示文档或帮助我将子域web.php发送/传递到控制器吗

mat*_*ard 9

您只需向控制器方法添加一个与路由参数同名的参数即可。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');
});
Run Code Online (Sandbox Code Playgroud)
class HomeController 
{
    public function index($subdomain)
    {
        dd($subdomain);
    }
}
Run Code Online (Sandbox Code Playgroud)

://admin.example.com/home

"admin"
Run Code Online (Sandbox Code Playgroud)