所以我无法为自己的生活弄清楚为什么我不能使用orderBy。我收到错误消息:
调用未定义的方法Illuminate \ Database \ Eloquent \ Collection :: orderBy()
这是我的代码:
Route::get('/teams', function(){
$page = 'Teams';
$teams = App\Team::all()->orderBy('teamFirstName')->get();
return view('teams')->with('page', $page)->with('allTeams', $teams);
});
我已尝试删除->get();
我尝试使用just的方法Team::all
。我正在使用Laravel备忘单,并且似乎遵循了Model语法。我还仔细检查了它是否是数据库中正确的列名,甚至尝试仅使用ID。
如果我删除该->orderBy()
查询,则工作正常,我可以得到所有团队。那我在做什么错?
这是因为all()
返回的aCollection
没有orderBy
方法(尽管它确实具有sortBy
可以使用的方法)。以下内容虽然简单一些,但应该会表现更好。
$teams = App\Team::orderBy('teamFirstName')->get();
一旦调用all()
,查询就会运行并获取结果,并且此后的任何排序都将由PHP完成。尽管通常最好让数据库处理排序,但是在使用orderBy()
获取结果之前先使用它get()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句