thinkphp5 链式操作field用法

field方法属于模型的连贯操作方法之一,主要目的是标识要返回或者操作的字段,可以用于查询和写入操作。

用于查询
指定字段
在查询操作中field方法是使用最频繁的。

Db::table(‘think_user‘)->field(‘id,title,content‘)->select();
这里使用field方法指定了查询的结果集中包含id,title,content三个字段的值。执行的SQL相当于:

SELECT id,title,content FROM table
可以给某个字段设置别名,例如:

Db::table(‘think_user‘)->field(‘id,nickname as name‘)->select();

使用SQL函数
可以在field方法中直接使用函数,例如:

Db::table(‘think_user‘)->field(‘id,SUM(score)‘)->select();

除了select方法之外,所有的查询方法,包括find等都可以使用field方法。

使用数组参数
field方法的参数可以支持数组,例如:

Db::table(‘think_user‘)->field([‘id‘,‘title‘,‘content‘])->select();
最终执行的SQL和前面用字符串方式是等效的。

数组方式的定义可以为某些字段定义别名,例如:

Db::table(‘think_user‘)->field([‘id‘,‘nickname‘=>‘name‘])->select();

对于一些更复杂的字段要求,数组的优势则更加明显,例如:

Db::table(‘think_user‘)->field([‘id‘,‘concat(name,"-",id)‘=>‘truename‘,‘LEFT(title,7)‘=>‘www.dc3688.com‘])->select();

获取所有字段
如果有一个表有非常多的字段,需要获取所有的字段(这个也许很简单,因为不调用field方法或者直接使用空的field方法都能做到):

Db::table(‘think_user‘)->select();
Db::table(‘think_user‘)->field(‘*‘)->select();