我正在使用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');
我接下来应该做什么步骤?
修改
我已将代码更改为
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");
}
答案 0 :(得分:0)
您可以尝试以下方式:
public function __construct()
{
$this->middleware(function ($request, $next) {
var_dump(current_Site());
return $next($request);
});
}
https://laravel.com/docs/master/controllers#controller-middleware
希望这有帮助!