【问题标题】:Adding dynamic pages and show in header menu Laravel添加动态页面并在标题菜单中显示 Laravel
【发布时间】:2016-06-23 19:48:38
【问题描述】:

我已经制作了管理员可以用来从管理面板添加新页面的功能,这些页面保存在数据库中。现在我想将它们显示为标题上的菜单。

这是我加载 master.blade 的 BaseController

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(); 但不起作用。

【问题讨论】:

    标签: php laravel-4


    【解决方案1】:

    您需要将 $pages 变量传递给布局页面,否则 laravel 将无法识别 $pages 变量。View::make($this-&gt;layout)-&gt;with(["pages"=&gt;$pages])

    【讨论】:

    • 谢谢,但在 foreach 上仍然有这个 Undefined variable: pages
    • 您可以共享来自构造本身的变量View::share('pages',$pages);
    • 我怎样才能做到这一点?
    • public function __construct(){ $pages=Pages::all(); View::share('pages',$pages); } 这样你所有的视图都会得到变量
    【解决方案2】:

    您没有将 $pages 传递给视图;改变这一行:

    $this->layout = View::make($this->layout);
    

    收件人:

    $this->layout = View::make($this->layout, ['pages' => $pages]);
    

    查看official documentation,很有帮助。

    希望这会有所帮助。

    【讨论】:

    • 谢谢,但在 foreach 上仍然有这个 Undefined variable: pages\
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 2019-01-23
    • 2019-02-08
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 2017-12-20
    相关资源
    最近更新 更多