国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php - laravelで複數(shù)のファジー條件付きクエリを結(jié)合するにはどうすればよいですか?
ringa_lee
ringa_lee 2017-05-16 12:02:58
0
5
1840

フロントエンドからフォーム配列を受け取ったとします:
$input = $request->input();
には、電子メール、名前、年齢、性別の 4 つの値が含まれています。ユーザーが電子メールと名前を入力した場合、データ テーブルは、ユーザーが入力した値に基づいてクエリされる必要があります。 、年齢と性別を入力すると、クエリがぼやけてしまいます。
しかし、ここで問題が発生します。ユーザーはこれら 4 つの入力のいずれかを入力する可能性があります。または、おそらく 4 です。その後、クエリ コンストラクターを使用すると、それぞれの値が存在するかどうかを判斷してからコンストラクターを記述することができなくなります。結(jié)局、ファジー クエリと正確なクエリの書き方が異なります。たとえば、今、フィールドが 2 つあるとします。 (メールアドレスと名前) にはファジークエリが必要です。Laravel のファジークエリのコンストラクターは次のように記述されます:
->where('email', 'LIKE', $input['email'])
次に、電子メールと名前がプログラム內(nèi)に存在するかどうかを判斷し、クエリ コンストラクターを結(jié)合する必要がありますか?
アイデアは次のとおりです。

リーリー

ファジークエリのフィールドが 10 個(gè)もある場合、コードの量が多すぎてコンストラクターがまったく使用できません。
次のような別の方法があれば教えてください。

リーリー

次に、
->where( 'LIKE', $where) を使用して、存在するかどうかのすべての狀況を 1 行に含めます。
インターネットでは、他の記述方法が推奨されています。
$where['email'] = ['like', $input['email']] ですが、laravel5.1 は使用できません。
複數(shù)條件のあいまいクエリと非あいまいクエリを解決する良い方法はありますか?

ringa_lee
ringa_lee

ringa_lee

全員に返信(5)
洪濤

Laravel は where に匿名関數(shù)を渡すことができます。

この匿名関數(shù)で判斷できます。

例えばこんな感じ

リーリー

こうすることで、コンストラクターの構(gòu)造を壊さずに適切な判斷を行うことができます。

某草草

私は 5.1 を使用したことがありませんが、5.4 には when メソッドがあります。例:

リーリー

これは、$nameが空でない場合、次の関數(shù)

が実行されることを意味します。

5.1にも同様の方法があるか確認(rèn)してください

滿天的星座

クエリ ビルダーと言えばwhere()方法是返回$this -- つまり、クエリを連続して書くことができますが、連続して書かなければならないというわけではありません。

フィールドが多い場合、forループを書いても大丈夫ですか?:

リーリー
小葫蘆

リーリー

大家講道理

あなたが判斷するのか、フレームワークが判斷するのか、あなたが判斷しなければなりません。ファジークエリのフィールドが 10 個(gè)ある場合、mysql は代わりに検索エンジンを使用して処理できますか?

最新のダウンロード
詳細(xì)>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート