モデルクエリの結果として得られた商品のコレクション($this->products
)があり、その属性値の一部でフィルタリングしたい。問題は、Laravelには、モデルを照会するためにEloquentのようなコレクションのためのorWhere
のようなメソッドがないということです。また、私はLIKE %{$searching_for}%
ワイルドカードを使用したいと思いますし、私は自分のコレクションをフィルタリングするために(もし可能であれば)それを使う方法がわかりません。Laravel 5:コレクションを照会するためのEloquentの 'orWhere'メソッドの代替
これは私が明らかにorWhere
方法が存在しないことをException
を投げると私のコレクションフィルタリングしようとしたコードです:私は直接モデルを照会したいのですが、私はちょうど$products
を保存
$products = $this->products
->where("field1", "LIKE %{$searching_for}%")
->orWhere("field2", "LIKE", "%{$searching_for}%")
->orWhere("field3", "LIKE", "%{$searching_for}%")
->orWhere("field4", "LIKE", "%{$searching_for}%");
をセッションでのコレクション私は必要などこでもそれを使用することができます、私は何とか既存のコレクションをフィルタリングするためのソリューションを探しているので、データベースをあまり頻繁に照会したくありません。
あなたはこのタイプのロジックを自分で書く必要があります。 [collection](https://laravel.com/docs/5.4/collections#available-methods)メソッドを使用します(おそらく ' - > filter'が必要です)。しかし、SQLのような完全なクエリは提供しません。 – devk
'$ this-> products() - >どこで(...) - > orWhere(...) - > get();'を試したことがありますか? '$ this-> products'はプロパティにアクセスしようとしていますが、' $ this-> products() 'は' public function products(){...} 'メソッドにアクセスしようとしています。 –