YII2中andwhere與andfilterwhere的區別
yii2中,經常會使用很多條件進行組合判斷查詢數據,所以就要明白andWhere和andFilterWhere的差異,以便靈活的使用。
#andWhere() ? //定義一個不為空的參數 $name?=?'lisi'; $query?=?Model::find(); $query->andWhere(['name'=>$name]); //生成的語句 SELECT?*?FROM?`table_name`?WHERE?`name`='lisi' ? //定義一個為空的參數 $name?=?''; $query->andWhere(['name'=>$name]); //生成的語句 SELECT?*?FROM?`table_name`?WHERE?`name`='' ? #andFilterWhere ? //定義一個不為空的參數 $name?=?'lisi'; $query?=?Model::find(); $query->andFilterWhere(['name'=>$name]); //生成的語句 SELECT?*?FROM?`table_name`?WHERE?`name`='lisi' ? //定義一個為空的參數 $name?=?''; $query->andFilterWhere(['name'=>$name]); //生成的語句 SELECT?*?FROM?`table_name`
看代碼應該就能看出差異了,andWhere 時,不管查詢的條件參數是否為空,都會加上該條件。andFilterWhere 時,當條件參數為空時,則會自動過濾該條件。
推薦:《YII教程》??
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END