如何在laravel 4中使用子域?

Kap*_*pta 2 laravel laravel-4

我想在我的L4网站中检测routes.php中的子域,并希望将该子域值存储在某处,以便我可以在每个控制器中访问该值.

我怎样才能做到这一点 ?请帮忙

cee*_*yoz 11

http://laravel.com/docs/routing#sub-domain-routing

Route::group(array('domain' => '{account}.myapp.com'), function() {
    Route::get('user/{id}', function($account, $id) {
        //
    });
});
Run Code Online (Sandbox Code Playgroud)


kab*_*mus 8

您可以将此类方法放在路径中.但是,我认为它更适合'app/filters.php'文件中的过滤器.试试这个:

Route::filter('getSubdomain', function($route, $request) 
{
    $host = $request->getHost();
    $parts = explode('.', $host);
    $subdomain = $parts[0];

    // Store subdomain in session
    Session::put('subdomain', $subdomain);

});
Run Code Online (Sandbox Code Playgroud)

然后将过滤器添加到路径(可能是组路径),如下所示:

Route::group(array('before' => 'getSubdomain'), function()
{
 ... add route stuff here ..
});
Run Code Online (Sandbox Code Playgroud)

您可以在此处阅读有关如何使用Laravel过滤器的更多信息:

http://laravel.com/docs/routing#route-filters