【问题标题】:Laravel 4.2 Pass Variable to master layoutLaravel 4.2 将变量传递给主布局
【发布时间】:2016-11-08 15:02:58
【问题描述】:

如何将变量传递到模板中的特定页面

现在我的横幅中有一个滑块,我需要将 var sliders 传递给 slider.blade,它位于 includes

项目图

project
-local
--app
---views
----includes (holds : header, head, footer, **slider**)

这是我在 Controller 中尝试过的

protected $layouts = 'includes.slider';

public function index()
{
    $slider = Slider::all();
    $data = array('sliders' => $slider);
    $this->layout->with('slider.sliders', $data);
}

这就是我在slider.blade 中尝试的方法

@if($sliders)
    <h1>TEST</h1>
@endif

但我有错误

未定义变量:滑块

编辑

查看View Composers我想出了这个

  1. 在我的应用程序中添加名为Acme 的新文件夹
  2. 在名为RepositoriesAcme 中添加新文件夹
  3. Repositories 中声明了新的类并称之为HomePageSlider.php 这是我的新课程的样子

    class HomePageSlider
    {
        public function getAll()
        {
            $getSlider = Slider::all();
            return $getSlider;
        }
    }
    
  4. 现在在我的主页控制器中,我像这样使用它use Acme\Repositories\HomePageSlider;

  5. 然后我把方法和__construct这样放

    受保护的 $slider;

    public function __construct(HomePageSlider $slider)
    {
        $this->slider = $slider;
        \View::share('sliders', $this->slider->getAll());
        });
    }
    

【问题讨论】:

  • 所有视图都使用此滑块吗?
  • @Rimon Khan 对不起,我没有收到你的问题
  • 是每页还是单页都使用这个滑块?
  • @Rimon Khan 不只是第一页
  • 在您的场景中,您应该通过 View::Composer() 传递滑块变量

标签: php laravel laravel-blade


【解决方案1】:

你应该这样做:

protected $layouts = 'includes.slider';

public function index()
{
    $slider = Slider::all();
    $data = array('sliders' => $slider);
    $this->layout->with('sliders', $data['sliders']);
}

然后你可以在你的视图中使用变量$sliders

你也可以使用compact方法,所以通过使用compact方法你可以这样做:

public function index()
{
    $sliders = Slider::all();
    return View::make('your_desirde_view_name', compact('sliders'));
    // Or can also do it as (if content is been echoed in layout...)
    // $this->layout->content = View::make('your_desirde_view_name', compact('sliders'));
}

【讨论】:

  • 仍然遇到同样的错误Undefined variable: sliders
  • 但是这个slider.blade 在我的布局中它不是return 的页面,我需要将变量传递给布局
猜你喜欢
  • 2014-05-22
  • 2016-12-17
  • 1970-01-01
  • 2016-11-20
  • 2017-01-06
  • 2011-06-19
  • 2013-04-13
  • 1970-01-01
  • 2022-11-11
相关资源
最近更新 更多