亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

yii框架中的andFilterWhere 和 andWhere的區別

yii框架中的andFilterWhere 和 andWhere的區別

Yii
瀟瀟雨雨 2018-12-30 04:00:37
yii框架中的andFilterWhere 和 andWhere的區別
查看完整描述

1 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

附加條件
你可以使用 andWhere() 或者 orWhere() 在原有條件的基礎上 附加額外的條件。你可以多次調用這些方法來分別追加不同的條件。 例如,
$status = 10;
$search = 'yii';

$query->where(['status' => $status]);

if (!empty($search)) {
$query->andWhere(['like', 'title', $search]);
}12345678

如果 $search 不為空,那么將會生成如下 SQL 語句:
... WHERE (`status` = 10) AND (`title` LIKE '%yii%')1

過濾條件
當 WHERE 條件來自于用戶的輸入時,你通常需要忽略用戶輸入的空值。 例如,在一個可以通過用戶名或者郵箱搜索的表單當中,用戶名或者郵箱 輸入框沒有輸入任何東西,這種情況下你想要忽略掉對應的搜索條件, 那么你就可以使用 yii\db\Query::filterWhere() 方法來實現這個目的:
// $username 和 $email 來自于用戶的輸入
$query->filterWhere([
'username' => $username,
'email' => $email,
]);12345

yii\db\Query::filterWhere() 和 where() 唯一的不同就在于,前者 將忽略在條件當中的hash format的空值。所以如果 email為空而username 不為空,那么上面的代碼最終將生產如下 SQL …WHERE username=:username。
提示: 當一個值為 null、空數組、空字符串或者一個只包含空白字符時,那么它將被判定為空值。
類似于 [yii\db\Query::andWhere()|andWhere()]] 和 orWhere(), 你可以使用 yii\db\Query::andFilterWhere() 和yii\db\Query::orFilterWhere() 方法 來追加額外的過濾條件。
andWhere和andFilterWhere都可以用來追加條件,只是andFilterWhere會忽略條件中的空值



查看完整回答
反對 回復 2019-01-03
  • 1 回答
  • 0 關注
  • 764 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號