yii2联合搜索

今天在完善项目后台的时候,要做一个多条件搜索,就是那种可单条件,也可多条件的,查询yii2的联合查询,操作成功,记录一下

多条件查询有两种查询方式:

1.  andwhere : 无论数据是否为空,都会带上查询参数

//定义一个不为空的参数
$name = 'xiao';
$query = Model::find();
$query->andWhere(['name'=>$name]);
//生成的语句
SELECT * FROM `table_name` WHERE `name`='xiao'

//定义一个为空的参数
$name = '';
$query->andWhere(['name'=>$name]);
//生成的语句
SELECT * FROM `table_name` WHERE `name`=''

2. andFileterWhere : 若数据为空,则在查询中不带此参数

//定义一个不为空的参数
$name = 'xiao';
$query = Model::find();
$query->andFilterWhere(['name'=>$name]);
//生成的语句
SELECT * FROM `table_name` WHERE `name`='xiao'

//定义一个为空的参数
$name = '';
$query->andFilterWhere(['name'=>$name]);
//生成的语句
SELECT * FROM `table_name`

3.多条件联合查询:看看我的功能

//接收参数
$user_id = Yii::$app->request->get('user_id');
$assets_id = Yii::$app->request->get('assets_id');
$order_id = Yii::$app->request->get('order_id');
$assets_type = Yii::$app->request->get('assets_type');
$spend_type = Yii::$app->request->get('spend_type');

//组合查询条件
$where = ['user_id' => $user_id,'assets_id' => $assets_id,'order_id' =>order_id,'assets_type' => $assets_type,'spend_type' => $spend_type];

$log = GridAssetsLog::find();   
$log->andFilterWhere($where);

4. 备注:

andFilterWhere方法里的判断走的是isEmpty(),此方法过滤的有:null、空数组、空字符串,没有false和0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值