Laravel - 路由 - 从域中区分子域

时间:2017-06-15 13:29:17

标签: routes laravel-5.4

我正在使用Laravel 5.4。我的路线定义如下,并使用自定义middleware

web.php

Route::group(['middleware' => 'validCity'], function () {
    Route::get('/', 'HomeController@home')->name('home');
});

场合

如果我输入paris.example.com,我将重定向到HomeController@home

如果我输入newyork.example.com,我将重定向到HomeController@home

如果我输入example.com,我也会重定向到HomeController@home

问题

这是正常的,考虑到我的routes定义吗?

如何根据subdomain

的存在制作不同的路线

实施例

如果我输入example.com,我希望重定向到view('Select Your Cities'),否则我希望重定向到home

1 个答案:

答案 0 :(得分:0)

web.php

Route::get('/', 'HomeController@home');

HomeController.php

 public function home(Request $request)
    {
        $url_array = explode('.', parse_url($request->url(), PHP_URL_HOST));
        $subdomain = $url_array[0];
        $subdomain = strtolower($subdomain);
        $subdomain = str_replace(' ', '', $subdomain);

        $city = City::where(DB::raw('lower(replace(name, \' \', \'\'))'),'LIKE', $subdomain)->get();

        if($city->isEmpty()) {
            return view('empty');
        }
        return view('app');
    }