【发布时间】:2019-08-01 14:00:06
【问题描述】:
我的 laravel 控制器中有多种方法,如下所示:
public function daily(){
$sites = Site::all()->where('owner_id', '==', Auth::user()->owner_id);
return view('backend.daily',compact('sites'));
}
public function weekly(){
$sites = Site::all()->where('owner_id', '==', Auth::user()->owner_id);
return view('backend.weekly',compact('sites'));
}
public function yearly(){
$sites = Site::all()->where('owner_id', '==', Auth::user()->owner_id);
return view('backend.yearly',compact('sites'));
}
...
我在控制器构造器中使用了它:
public function __construct() {
$sites = Site::all()->where('owner_id', '==', Auth::user()->owner_id);
View::share('sites', $sites);
}
并在 AppserviceProvider 的 boot() 方法中使用,但这不起作用并出现以下错误:
"Trying to get property 'owner_id' of non-object"
正常使用时没有错误!
在每种方法中,我都使用了一个名为 $sites 的变量,但它在多个视图中使用,我想使用 $sites 一次,并且我的代码希望像这样更短:
public function daily(){
return view('backend.daily',compact('sites'));
}
public function weekly(){
return view('backend.weekly',compact('sites'));
}
public function yearly(){
return view('backend.yearly',compact('sites'));
}
...
我怎样才能做到这一点?
【问题讨论】:
标签: laravel variables methods controller multiple-views