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

Undefined variable when sending data to a view in Laravel 5.8

我遇到以下问题:我在父控制器 SiteController.

上编写的 renderOutput 方法中加载站点的主要布局(视图)
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 方法中显示部分(section)滑块,我将 $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 变量在模板中不可用。请告诉我如何解决这个问题。提前致谢!

Undefined variable: sliders (View: C:\Users\User\Downloads\Programs\OSPanel\domains\Corporate\resources\views\pink\index.blade.php)

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);
}