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

Raj*_*wat 7 laravel laravel-4

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

luk*_*ter 11

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

DB::table('foo')->select(array('bar'));
Run Code Online (Sandbox Code Playgroud)

不会执行任何东西.你还需要get()那个

DB::table('foo')->select(array('bar'))->get();
Run Code Online (Sandbox Code Playgroud)

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

DB::table('foo')->get(array('bar'));
Run Code Online (Sandbox Code Playgroud)

因此,单独的语法 get()更快(意味着更短),而性能方面你不会注意到任何差异.

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

select('foo', 'bar', 'etc', 'whatever')
Run Code Online (Sandbox Code Playgroud)

并且get()你必须使用一个数组

get(array('foo', 'bar', 'etc', 'whatever'))
Run Code Online (Sandbox Code Playgroud)