$ids = '1, 2, 3';
$data = Modelname::whereNotIn('id', [$ids])->take(1)->get();
上面的查詢給出錯誤的結果。但下面的查詢給出正確的結果。laravel 5.4查詢中可變參數,給出錯誤結果?
$data = Modelname::whereNotIn('id', [1, 2, 3])->take(1)->get();
所以,如何通過所述可變參數中查詢(laravel 5.4)。如下面
$ids = '1, 2, 3';
$data = Modelname::whereNotIn('id', [$ids])->take(1)->get();
上面的查詢給出錯誤的結果。但下面的查詢給出正確的結果。laravel 5.4查詢中可變參數,給出錯誤結果?
$data = Modelname::whereNotIn('id', [1, 2, 3])->take(1)->get();
所以,如何通過所述可變參數中查詢(laravel 5.4)。如下面
使用,使數組ids $ids = '1, 2, 3';
之間
$ids = '1, 2, 3';
$idArr = explode(", ",$ids);
$data = Modelname::whereNotIn('id', $idArr)->take(1)->get();
照顧空間和exploding by string
的whereNotIn
接受一個array
作爲它的第二個參數。
所以,如果你有一個逗號分隔的字符串,你在第一種情況下做,你需要將它分解成一個數組,然後傳遞給whereNotIn
。
$ids = '1,2,3';
$idsArray = explode(',', $ids); // produces [1, 2, 3]
// it's always a good idea to add a check because if array is empty then an SQL exception will be thrown.
if(count($idsArray) > 0) {
$data = Modelname::whereNotIn('id', $idsArray)->take(1)->get();
}
希望這會有所幫助。
但是,這是在空陣列的情況下工作。 –
'$ ids'變量包含上面的字符串或ID數組? –