在Laravel中返回view()?

在Laravel中返回view()?,laravel,Laravel,我正在学习Laravel5.1框架,我发现了一个令人困惑的问题。 首先,我创建了一个名为“Page”的模型,然后我创建了一个名为“HomeController”的控制器,方法代码如下: public function index() { return view('home')->withPages(Page::all()); } 我找不到“withPages()”函数,所以我找到了帮助函数view()return\illumb\view\view,所以我找到了“vendor/la

我正在学习Laravel5.1框架,我发现了一个令人困惑的问题。 首先,我创建了一个名为“Page”的模型,然后我创建了一个名为“HomeController”的控制器,方法代码如下:

public function index()
{
    return view('home')->withPages(Page::all());
}
我找不到“withPages()”函数,所以我找到了帮助函数view()return\illumb\view\view,所以我找到了“vendor/laravel/framework/src/illumb/view/view.php”,这里有一个“\u call()”,所以我得到了它。 但是我试着删除这个功能,我的网站还是正常的。
我找错地方了吗?我很困惑。

如果您想使用
with pages
方法,您需要在方法中设置变量
$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()
{
   return view()->with('pages', Page::all());
}
。。。有一个“\u call()”,所以我明白了。但是我试着删除这个功能,我的网站还是正常的。我找错地方了吗?我很困惑

可能吧

作为性能优化,Laravel将其所有核心类“编译”到单个文件中


试着运行
php artisan clear compiled
,你的网站就会开始失败。

你想实现什么?
withPages()
函数不是一个真正的函数,正如您已经指出的,它是使用
\u call()
魔术方法人工调用的。为什么要删除它?除了Wader的评论:您可以使用模型与数据库表交互。之后可以将这些信息传递给视图。有关模型的更多信息:我只想测试它!现在我找到了尼克的正确答案。非常感谢。据我所知,您不需要
$pages
变量。对于
->With
后面的部分,您只需在视图中定义变量的命名方式。@J.Eggerstedt是的,您是对的。在这种情况下有三种选择。我会更新答案的。你解决了我的困惑。非常感谢你。我对这个特性感到非常惊讶。Laravel如何将所有的核心类“编译”到单个文件中?有什么材料或理论吗?@xiangfeai生成编译文件
bootstrap/autoload.php
是框架加载编译文件的地方。
public function index()
{
   return view()->with('pages', Page::all());
}