データを絞り込みたい
// データの取得 $x_item = Xitem::get(); $this->aFunc($x_item); // $x_itemの中で条件が合致したものだけ行う処理
こんなふうに、一度データベースから取得したデータの内、一部だけを利用してデータを操作したい。
このときに、クエリを再発行して再取得する方法もあるが、SQL節約したり、データがその間変わっているのを恐れるなら、
取得後のデータを絞り込みたい
where関数whereIn関数等
データベースから get
関数などで取得したデータはCollectionと呼ばれる、ちょっとリッチな配列に格納される。
そのCollectionには便利な関数がいくつかあります。
(DBから取得する以外で生成されたCollectionでも使えます)
// データの取得 $x_item = Xitem::get(); $this->aFunc($x_item); // user_idが1と2のものだけ取り出す $items = $xxx_items->whereIn('user_id', [1,2]); // idが1と2のものどちらかがあれば関数を実行 if (!$items->isEmpty()) { $this->bFunc(); }
このように、取得後もクエリを再発行せずとも、データを絞り込む事ができます。
Collectionには便利な関数が他にもあるので、クエリを再発行する必要があるか、一度考えてみましょうφ(・・