我正在尝试使用Post::all()从数据库表中获取所有记录。奇怪的是,它给了我一个500的错误。如果我使用像Post::where('id', 1)->get()这样where子句,它就可以正常工作。我查了错误日志,但没有任何记录
Post::all()
Post::where('id', 1)->get()
dwthyt8l1#
看起来运行Foo::all()或Foo::get()可能会遇到内存限制问题。不建议从表中获取所有记录,除非该表是受控的并且只包含很少的记录在运行all或get函数之后/之前,始终可以重新定义查询一个all()调用将返回一个集合,在那里你可以在收集数据后进行过滤,而get()将要求你在执行之前指定过滤,就像在SQL级别上完成的那样。范例:
Foo::all()
Foo::get()
all
get
all()
get()
$exampleOne = Foo::where('bar', 1)->get(); //query builder $exampleTwo = Foo::all()->where('bar', 1); //Laravel collection
mccptt672#
当你想从模型中获取所有数据时,你必须使用get()函数:
Posts::get();
r7s23pms3#
如果你想得到所有的数据,并得到错误的代码Posts::all()你可以使用get函数:Posts::get();DB::table('posts')->get();你可以在终端写命令php artisan optimize:clear
Posts::all()
DB::table('posts')->get();
php artisan optimize:clear
3条答案
按热度按时间dwthyt8l1#
看起来运行
Foo::all()
或Foo::get()
可能会遇到内存限制问题。不建议从表中获取所有记录,除非该表是受控的并且只包含很少的记录在运行
all
或get
函数之后/之前,始终可以重新定义查询一个
all()
调用将返回一个集合,在那里你可以在收集数据后进行过滤,而get()
将要求你在执行之前指定过滤,就像在SQL级别上完成的那样。范例:
mccptt672#
当你想从模型中获取所有数据时,你必须使用get()函数:
r7s23pms3#
如果你想得到所有的数据,并得到错误的代码
Posts::all()
你可以使用get函数:
Posts::get();
DB::table('posts')->get();
你可以在终端写命令
php artisan optimize:clear