我指定一個where子句:循環where子句?
$this->model = $model->where('published', '=', '1');
$this->model->get();
以上工作得很好,給人的查詢日誌:
select * from `products` where `published` = ?"
但我需要通過的循環,從陣列中的條款。
$arr = [['published', '=', '1'], ['id', '=', '1']];
foreach ($arr as $key => $value) {
$model = $model->where($value);
}
$model->get();
但與上述我找到一個列未找到。 'where子句'中的未知列'0'。
我哪裏錯了?
而且這一點,如果我只是通過整個陣列中,它的工作原理:
$model = $model->where($arr);
給予的查詢日誌:
"select * from `products` where (`published` = ? and `id` = ?)"
但是,where子句是在括號中...爲什麼?
我是否認爲你想將數組中的任何值傳遞給你的'where'是正確的?例如,如果你有'[['col','=','val']],那麼會導致'$ model-> where('col','=','val')'? – Jonathon
是的,那是正確的,我已經可以用$ model-> where($ arr);但是這個問題是它引起我的where子句的括號。它爲什麼這樣做,括號是什麼意思? – panthro
嘗試刪除賦值,使$'model = $ model-> where(...);'變成'$ model-> where(...);'。這是否做了什麼?當你執行像'$ model-> where(function($ query){// Extra where子句});'' – Jonathon