Я использую https://github.com/appstract/laravel-multisite, который работает отлично.
В моих методах контроллера я могу var_dump current_site()
, и отображается правильная информация.
Моя проблема заключается в том, что в моем методе контроллера __construct
функция current_site
возвращает null, т.е. объект multi_site
еще не настроен.
public function __construct()
{
//this returns null
var_dump(current_Site());
}
public function index()
{
//this works
var_dump(current_Site());
}
Я предполагаю, что конструктор вызывается до того, как маршрутизация была выполнена, и, следовательно, это проблема, но я хотел вызвать функцию current_site
только один раз и чтобы контроллер знал, какой сайт используется с самого начала, чтобы все методы и т. д. знали.
Я думаю, что это просто недостаток знаний с моей стороны, а не проблема с кодом... какие-нибудь рекомендации?
Мои группы маршрутов, как это
'domain' => 'dealer1.'.config('multisite.host'),
'as' => 'dealer1.',
'middleware' => 'site:dealer1'
Я знаю, что это связано с промежуточным программным обеспечением, которое не выполняется до вызова __construct, но должен ли я вызывать его, выполняя
$this->middleware('CurrentSite');
wКакой шаг я должен сделать дальше?
Редактировать
Я изменил свой код на
public function __construct()
{
$this->middleware(function ($request, $next) {
//this dumps correctly
var_dump(current_Site() );
$this->currentSite = current_Site();
return $next($request);
});
//this is null
//var_dump($this->currentSite);
//die("here");
}