-1

私はlaravel 5.3を使用していて、複数のwhereおよびwhere関数を使用してクエリを作成しようとしています。ここに私のコードは次のとおりです。Arrayの項目をLInvelのwhereInで取得します。

$posts_id = "1,3,4"; //from my query 
$results = Post::select('*'); 
$results->whereIn('posts_id', [$posts_id]); 
$resutls->get(); 

あり、私のデータベースに4のIDを持っている1つのポストはあるが、私のクエリは何も返しません。私のポストIDは$posts_id = "1,3,4";で4ですが。

私が$posts_id変数に含まれているIDの投稿を取得するのに役立つ必要があります。

ありがとうございました!あなたが別の行に各メソッドを呼び出す必要はありません

$results = Post::whereIn('posts_id', explode(',' $posts_id))->get(); 

注:

答えて

1

あなたはここ()メソッドに配列を渡す必要があります。それらを連鎖させることができます。また、select( '*')は必須ではありません。

あなたが望む任意の方法で配列を作成できますが、explode()を使用する必要はありません。

$ids = [1, 2, 3]; 
$results = Post::whereIn('posts_id', $ids)->get(); 

このクエリを実行する前に配列が空でないかどうかを確認するとよいでしょう。

関連する問題