ThinkPHP完整项目教程的第57课,字段排除

作者:admin     字体:[增加 减小]    类型:原创
在ThinkPhp中更多的情况下我们都是查询某些字段,但有些情况下面我们需要通过字段排除来更方便的查询字段,我们这时可以使用$m->field(\'fields\',true)能过给field方法传递第二个参数true来排除字段。

在ThinkPhp中更多的情况下我们都是查询某些字段,但有些情况下面我们需要通过字段排除来更方便的查询字段,例如文章详细页,我们可能只需要排除status和update_time字段,这样就不需要写一堆的字段名称了(有些人可能觉得为什么不用“*”查询全部字段呢,不是更方便吗,但是有一点不可否认,即使列出所有字段也比查询所有字段的效率要高哦^_^),而新版的Model类的field方法可以支持排除(NOT)机制, 举个例子,例如我们有一个article表,定义了有id,name,title,status,create_time,read_count,comment_count字段,当使用普通的字段查询

$Model->field('id,name')->select();

这是我们比较常用的查询字段方式,表示查询id,name字段 。

生成的SQL语句应该是SELECT id,name FROM article

当使用下面的字段排除方式查询的时候

$Model->field('create_time,read_count,comment_count',true); 

第二个参数表示field方法采用的是排除机制,因此实际查询的字段是除create_time,read_count,comment_count之外的其他数据表所有字段,最终要查询的字段根据实际的数据表字段有所不同。 生成的SQL语句就变成了SELECT id,name,title,status FROM article