【发布时间】:2018-09-27 09:34:14
【问题描述】:
我需要向几乎每个view 页面发送相同的结果,因此我需要绑定variables 并与每个控制器一起返回。
我的示例代码
public function index()
{
$drcategory = DoctorCategory::orderBy('speciality', 'asc')->get();
$locations = Location::get();
return view('visitor.index', compact('drcategory','locations'));
}
public function contact()
{
$drcategory = DoctorCategory::orderBy('speciality', 'asc')->get();
$locations = Location::get();
return view('visitor.contact', compact('drcategory','locations'));
}
但正如您所见,我需要一遍又一遍地编写相同的代码。如何编写一次并在需要时将其包含在任何函数中?
我考虑过使用构造函数,但我不知道如何实现它。
【问题讨论】:
-
你有没有想过创建一个
trait,你可以在需要的时候添加上面的功能? -
一种简单的方法是:为名为@987654325@和
$this->data["locations"]的变量添加值,在你的构造中,在返回视图之前,你可以这样写$data = $this->data;和return view('visitor.contact', compact('data'));。您可以将更多变量添加到data数组中。 -
你想与evey视图共享这个变量(其他控制器的句柄)还是突出这个控制器的视图句柄?
-
我想将此变量共享给仅此控制器的视图。
标签: laravel eloquent laravel-controller