我刚刚学习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()”,所以我明白了。 但我尝试删除此功能,我的网站仍然正常。 我找错了地方吗?我很困惑。
答案 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
,您的网站应该开始失败。