## 基础 名称:field 类型:静态方法 必须:是 参数个数:4个 结构: field($field,$flag,$value,$not) 备注:field方法是使用condition辅助必传的方法,而且只能使用静态方式调用 调用方式:condition::field() # 参数详解 field()方法一共四个参数,第一个参数$field为必传参数,后面三个都是非必传参数。 ## $field 必传参数,可传1至多个字段,每个字段之间用英文逗号隔开; 列: ``` condition::field('a1,a2,a3,a4')->return(); ``` 生成结果: ``` a1='10' and a2='20' and a3='30' and a4='dddd' ``` #### 字段属性 field()方法会默认对传入的每个字段进行安全过虑,在开发者不指定过虑方式时默认都使用字符串过虑方式,使用的是 htmlspecialchars 方法过虑。 如果我们数据库中的字段不是字符串,而是数字或价格,这时候我们可能需要使用intval()和round()方法来过虑,以保证数据的准确性。 那么我们可以通过下方法解决,对每个字段指定类型,$field变量一共支持三种数据类型: 数字类型:int 价格或小数类型:float 字符串类型:string 类型指定方法: 在每个字段后面加上 [类型]即可: 例: ``` condition::field('a1[int],a2[int],a3[float],a4')->return(); ``` string类型是默认类型,是不需要指定的,在实际开发过程中大部分筛选条件都是字符串类型,所以我们都可以直接省略。 ## $flag 备注:非必传参数 默认值:= 作用:用于字段和字段值之间的连接 例: ``` //不传值 condition::field('a1[int],a2[int],a3[float],a4')->return(); //生成结果 //a1='10' and a2='20' and a3='30' and a4='dddd' 传值 condition::field('a1[int],a2[int],a3[float],a4','!=')->return(); //生成结果 //a1!='10' and a2!='20' and a3!='30' and a4!='dddd' ``` 支持的运算符: ``` = < > <> >= <= != like in not in find_in_set regexp ``` ## $value 备注:非必传参数 默认值:空 作用:为前面的 $field 参数里面的字段赋值 提醒:使用$value参数传值时,前面的$field 字段只能传一个字段,不能使用逗号分隔方式传多个字段,否则无效。 例: ``` //正确方式 condition::field('url','=','http://www.dtmoban.com/')->return(); //结果 // url='http://www.dtmoban.com/' //错误方式: condition::field('url,title','=','http://www.dtmoban.com/')->return(); //结果 url='url或上文传过来的值' and title='url或上文传过来的值' ``` 可以看到第当$field参数传入两个值时,$value参数就自动失效了,所以大家在使用时千万要注意,小心踩坑。 ## $not 备注:非必传参数 默认值:空 作用:配合第一个参数使用,指当前面的字段值不为$not指定的值时,条件生效。 提醒:与$value一样,使用$default时 $field只能传一个字段,否无效。 例: ``` //当url的值不等于daidu.com时生成的sql condition::field('url','=','http://www.dtmoban.com/','baidu.com')->return(); //结果 // url='http://www.dtmoban.com/' //当url值等于baidu.com时生成的sql condition::field('url','=','baidu.com','baidu.com')->return(); //结果是没有生成 // ``` ## ## 小结 学会了field()方法,基本也就学会了condition辅助,condition辅助的核心便是field()方法,小伙伴可要好好学哦。 # 打赏 您的支持是我最大的动力哦,立即通过微信扫一扫犒劳下高飞吧! ![](images/weixin.jpg)