我已经制作了功能,可以用来添加保存在数据库中的管理面板中的新页面。现在,我想将它们显示为标题上的菜单。
这是我的基本控制器,它是加载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();
,但不起作用。
您需要将$页面变量传递给布局页面,而Laravel将无法识别$页面变量。View::make($this->layout)->with(["pages"=>$pages])
您没有将$页面传递给视图;更改此行:
$this->layout = View::make($this->layout);
to:
$this->layout = View::make($this->layout, ['pages' => $pages]);
检查官方文档,非常有帮助。
希望这会有所帮助。