Boday D Chang
Aug 28, 2017 · 2 min read

Route::Pattern + Named Routes Plan

I later used this method to solve my problem

| — — — — — — — — — — — — — — -| — — — — | — — — -| — — — — — — -| — — — — — — — — — — — — — — — — — — — — — — — — — | — — — — — — — — — — — — — — — — — — — — — — — — — -| — — — — — — — — |
| Domain | Method | URI | Name | Action | Middleware | |
| — — — — — — — — — — — — — — -| — — — — | — — — -| — — — — — — -| — — — — — — — — — — — — — — — — — — — — — — — — — | — — — — — — — — — — — — — — — — — — — — — — — — — -| — — — — — — — — |
| {SubDomainName}aaa.{Domain} | GET | HEAD | / | main. | Closure | web |
| {SubDomainName}bbb.{Domain} | GET | HEAD | / | admin.index | App\Http\Controllers\Admin\LoginController@index | web |
| {SubDomainName}bbb.{Domain} | GET | HEAD | test | admin. | Closure | web,auth:admin |
| {SubDomainName}bbb.{Domain} | POST | login | admin.login | App\Http\Controllers\Admin\LoginController@login | web | |
| {SubDomainName}bbb.{Domain} | GET | HEAD | logout | admin.logout | App\Http\Controllers\Admin\LoginController@logout | web,auth:admin |
| {SubDomainName}bbb.{Domain} | GET | HEAD | test | admin.test | App\Http\Controllers\Admin\LoginController@test | web,auth:admin |
| — — — — — — — — — — — — — — -| — — — — | — — — -| — — — — — — -| — — — — — — — — — — — — — — — — — — — — — — — — — | — — — — — — — — — — — — — — — — — — — — — — — — — -| — — — — — — — — |

/**
* [host_format Domain Name Format]
* @Author Boday
* @DateTime 2017–08–28T14:29:23+0800
* @return [type] [description]
*/
function host_format()
{
preg_match(‘/([a-zA-Z0–9-._]+\.)?(aaa|bbb|ccc).([a-zA-Z0–9-.]+)(:[0–9]+)?/’, Request::server(‘HTTP_HOST’), $Matches);
return $Matches;
}

/**
* [route_uri Custom Laravel Route]
* @Author Boday
* @DateTime 2017–08–28T14:41:50+0800
* @param string $Name [description]
* @param array|null $Arguments [description]
* @return [type] [description]
*/
function route_uri(string $Name, array $Arguments = null)
{
$Domain = host_format();
$Parameters = collect();
if (isset($Domain[‘1’])) {
$Parameters->put(‘SubDomainName’, $Domain[‘1’]);
}
if (isset($Domain[‘3’])) {
$Parameters->put(‘Domain’, $Domain[‘3’]);
}
if ($Arguments) {
$Parameters = $Parameters->merge($Arguments);
}
return call_user_func(‘route’, $Name, $Parameters->all());
}

)