Всем привет уважаемые программисты!
Вопрос моего дня)
Уже реализовал на Laravel поддомены для городов, но столкнулся с проблемой!
Хочу чтобы:
Москва была без поддомена website.ru
Новосибирск с поддоменом nsk.website.ru
Бердск с поддоменом berdsk.website.ru
Сделал так:
БД
Роуты
Route::group([
'domain' => '{city_alias}.website.ru',
'namespace' => 'Available',
], function (){
Route::get('/', 'IndexController@index')->name('index');
});
Ссылки в блэйдах
route('category.one', [$city_one->alias, $category_one->alias])
Контроллер
class IndexController extends Controller
{
public function index($city_alias)
{
$city_one = City::cityAlias($city_alias)->first();
return view('........');
}
}
Проблема состоит с городом МОСКВА! москва = null. Как сделать так, чтобы москва была без поддомена?? + меньше когда написать.
Возможно дадите 2 совета:
- как сделать по простому (много кода через if)
- как сделать по сложному (наследование и конструкторы)
Заранее всем благодарен!!! Какой бы ответ не был!!!
Проблема с 'точкой', попробовал даже в БД добавить в alias 'точку' => nsk.
а в роутах убрать точку)) но увы)) Может ее по другому можно убрать.
Возможно что-то нужно поменять тут:
Illuminate\Routing\Route.php
/**
* Get or set the domain for the route.
*
* @param string|null $domain
* @return $this|string|null
*/
public function domain($domain = null)
{
if (is_null($domain)) {
return $this->getDomain();
}
$parsed = RouteUri::parse($domain);
$this->action['domain'] = $parsed->uri;
$this->bindingFields = array_merge(
$this->bindingFields, $parsed->bindingFields
);
return $this;
}