我已经创建了一个管理员可以用来从管理面板添加新页面的功能,这些功能保存在数据库中。现在我想将它们显示为标题上的菜单。
这是我的BaseController加载master.blade
protected function setupLayout()
{
if (!is_null($this->layout))
{
$pages = Pages::all();
$this->layout = View::make($this->layout);
}
}
这是来自master.blade
我试图展示的页面
@foreach($pages as $page)
<li><a href="{{ URL::to($page->page_id) }}">{{ $page->page_title }}</a></li>
@endforeach
我得到Undefined variable pages...
我尝试过简单地将其添加到setupLayout()
$pages = Pages::all();
但不起作用。
答案 0 :(得分:0)
您没有将$ pages传递给视图;改变这一行:
$this->layout = View::make($this->layout);
要:
$this->layout = View::make($this->layout, ['pages' => $pages]);
检查official documentation,非常有帮助。
希望这有帮助。
答案 1 :(得分:0)
您需要将$ pages变量传递给布局页面,否则laravel将无法识别$ pages变量。View::make($this->layout)->with(["pages"=>$pages])