Laravel 5 の Eloquent ORM を使用してデータベースレコードを検索する場合、Where メソッドを LIKE 演算子とともに使用して、大文字と小文字を区別しない比較を実行します。ただし、Laravel のこの演算子の構文は、標準の SQL LIKE 構文とは異なります。
質問:
開発者は、Laravel 5 の Eloquent を使用して次のクエリを実行しようとしています。 ORM:
BookingDates::where('email', Input::get('email'))->orWhere('name', 'like', Input::get('name'))->get()
しかし、結果は返されません。開発者は、orWhereLike 句が結果に一致しない理由がわかりません。
回答:
orWhereLike 構文は、検索する列名と検索の 2 つの引数を受け入れます。学期。この場合、name 列で、Input::get('name') で指定されたユーザー入力を含む値が検索されます。
ただし、提供されるコードでは、orWhereLike メソッドではなく、orWhere メソッドが使用されます。 。 LIKE を使用して大文字と小文字を区別しない検索を実行するための正しい構文は次のとおりです:
orWhere('name', 'like', '%' . Input::get('name') . '%')
このコードは次の MySQL ステートメントを生成します:
SELECT * FROM booking_dates WHERE email='[email protected]' OR name LIKE '%John%'
パーセント記号 (%) を使用します。検索語の場合、クエリは、列値内の位置に関係なく、名前列に指定された文字列が含まれるレコードと一致します。
以上がLaravel 5のEloquent ORMでLIKEを使用して大文字と小文字を区別しない検索を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。