将数据发送到Laravel 5.8中的视图时未定义的变量

时间:2019-04-11 16:39:51

标签: php laravel-5.8

我遇到以下问题:我用写在父控制器renderOutput上的SiteController.方法加载了网站的主布局(视图)

protected function renderOutput(){
  $menu = $this->getMenu();
  $navigation = view(env('THEME').".navigation")->with('menu',$menu)->render();
  $this->vars = array();
  $this->vars = array_add($this->vars,'navigation', $navigation);

  return view($this->template)->with($this->vars);
}

IndexController方法的子控制器index中,我将此方法称为。另外,为了显示index方法中的部分(部分)滑块,我将$sliders变量传递到滑块模板的地址。

public function index(){
    //
    $sliders = view(env('THEME').".slider")->render();
    $this->vars = array();
    $this->vars = array_add($this->vars,'sliders',$sliders); 

    return $this->renderOutput();
}

但是当我在模板中使用此变量时,出现错误。也就是说,$sliders变量在模板中不可用。请告诉我如何解决问题。预先谢谢你!

  

未定义变量:滑块(视图:C:\ Users \ User \ Downloads \ Programs \ OSPanel \ domains \ Corporate \ resources \ views \ pink \ index.blade.php)

1 个答案:

答案 0 :(得分:1)

renderOutput()中,您正在覆盖$this->vars,这就是未定义它的原因。

使用:

protected function renderOutput(){
  $menu = $this->getMenu();
  $navigation = view(env('THEME').".navigation")->with('menu',$menu)->render();
  $this->vars = array_add($this->vars,'navigation', $navigation);

  return view($this->template)->with($this->vars);
}