ここにシナリオがあります。テーブルFoo
と2つのカラムbar
とbaz
があるとします。 bar
とbaz
の両方の状態をチェックしたいと思います。この条件は、2つの列のいずれかにのみ当てはまります。どちらの列に当てはまる場合でも、もう一方の列を選択したいと思います。1つのクエリでWHERE句に基づいてSELECTする列を条件付きで選択するにはどうすればよいですか?
私はこのような二つの別々のクエリとしてこれを書くことができる:
$one = Foo::select('bar as qux')->where('baz', $value);
$two = Foo::select('baz as qux')->where('bar', $value);
(カラムは$value
に等しい場合、例示のために、私の例で条件がチェックされる。)
その後、私は2つのクエリの結果を取得し、それらをマージすることができると思います。しかし、実際にはPaginator
を使用したいと思っています。
$rows = Foo::where('baz', $value)->orWhere('bar', $value);
をしかし、私はそこから条件付きでbar
かbaz
を選択する方法がわからない:
私はこれを使用してテーブルから関連するすべての行を選択することができます。私が求めている解決策は、上記の2つの方法の組み合わせであるようです。
Eloquentを使用して単一のクエリでこれを行うことは可能ですか?私は生のクエリを実行することができると思いますが、可能であれば、生のクエリから完全に離れています。ありがとう。
私の最初の応答は言っていた:私は '(取得する必要はありません。 ) '私はそれらをページネートしたいのですぐに結果。しかし、その後、私は「orWhere」の結果をページネストしてループすることができます。ありがとう、これは私が多くのことを思って思ったように見える! – cheryllium