2017-07-29 12 views
-1
$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)で変数パラメータを渡す方法。以下のように

+0

'$ ids'変数は、上記の文字列またはIDの' array'が含まれていますか? –

答えて

1

使用配列

$ids = '1, 2, 3'; 
$idArr = explode(", ",$ids); 
$data = Modelname::whereNotIn('id', $idArr)->take(1)->get(); 

は、スペースの世話を作るために、IDS $ids = '1, 2, 3';exploding by string

0

whereNotInは、その2番目の引数として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(); 
} 

これが役に立ちます。

+0

しかし、これは空の配列の場合に機能します。 –

関連する問題