【发布时间】: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我想出了这个
- 在我的应用程序中添加名为
Acme的新文件夹 - 在名为
Repositories的Acme中添加新文件夹 -
在
Repositories中声明了新的类并称之为HomePageSlider.php这是我的新课程的样子class HomePageSlider { public function getAll() { $getSlider = Slider::all(); return $getSlider; } } 现在在我的主页控制器中,我像这样使用它
use Acme\Repositories\HomePageSlider;-
然后我把方法和
__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