【发布时间】:2017-12-11 12:35:36
【问题描述】:
我正在使用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");
}
【问题讨论】:
标签: laravel scope middleware laravel-middleware