Laravel中view()的返回?

时间:2016-03-24 14:07:31

标签: laravel

我刚刚学习Laravel 5.1框架,我发现了一个令人费解的问题。 首先,我创建一个名为'Page'的模型,然后创建一个名为'HomeController'的控制器,方法代码如下:

public function index()
{
    return view('home')->withPages(Page::all());
}

我找不到'withPages()'函数,所以我找到帮助函数view()返回\ Illuminate \ View \ View,所以我找到'vendor / laravel / framework / src / Illuminate / View / View.php',有一个“__call()”,所以我明白了。 但我尝试删除此功能,我的网站仍然正常。 我找错了地方吗?我很困惑。

3 个答案:

答案 0 :(得分:0)

如果要使用withPages方法,则需要在方法中设置变量$pages

所以你的方法看起来像:

public function index()
{
    pages = Page::all();
    return view('home')->withPages($pages);
}

其他两个选项:

public function index()
{
    return view('home')->with('pages', Page::all());
}

public function index()
{
    pages = Page::all();
    return view('home')->with(compact('pages));
}

您可以使用这些方法中的任何一种。

答案 1 :(得分:0)

我就是这样做的 -

public function index()
{
   return view()->with('pages', Page::all());
}

答案 2 :(得分:0)

  

...有一个“__call()”,所以我明白了。但我尝试删除此功能,我的网站仍然正常。我找错了地方吗?我很困惑。

可能。

Laravel'将所有核心类编译成单个文件作为性能优化。

尝试运行php artisan clear-compiled,您的网站应该开始失败。