laravel eloquent中select()和get()之间的区别

时间:2014-12-24 09:43:21

标签: laravel laravel-4

使用laravel eloquent模型时,get()和select()方法之间是否存在差异?哪种方法更快?

1 个答案:

答案 0 :(得分:11)

是的,有区别。 select()仅用于定义所需的列。 get()用于实际获取结果(>执行查询),它还允许您指定列。

DB::table('foo')->select(array('bar'));

不会执行任何内容。您仍然需要get()

DB::table('foo')->select(array('bar'))->get();

现在您收到的结果只有bar列 同样可以这样做:

DB::table('foo')->get(array('bar'));

所以语法明智 get()单独更快(意味着更短),而性能明智,你不会注意到任何差异。

另一个小差异:使用select()您可以使用列表语法

select('foo', 'bar', 'etc', 'whatever')

并且使用get()您必须使用数组

get(array('foo', 'bar', 'etc', 'whatever'))