- Laravelのクエリビルダを使用した大文字小文字を区別しない検索:
$keyword = 'laravel';
$results = DB::table('table_name')
->whereRaw('LOWER(column_name) LIKE ?', ['%' . strtolower($keyword) . '%'])
->get();
上記の例では、table_name
というテーブルのcolumn_name
という列を大文字小文字を区別せずに検索しています。LOWER
関数を使用して列の値と検索キーワードを小文字に変換してから、LIKE
演算子を使用して部分一致を行っています。
- Eloquentモデルを使用した大文字小文字を区別しない検索:
$keyword = 'laravel';
$results = YourModel::whereRaw('LOWER(column_name) LIKE ?', ['%' . strtolower($keyword) . '%'])
->get();
上記の例では、YourModel
というEloquentモデルを使用して大文字小文字を区別せずに検索しています。クエリの構文は前の例と同じですが、YourModel
は自分のモデル名に置き換えて使用してください。
- Laravel Scoutを使用した大文字小文字を区別しない検索:
$keyword = 'laravel';
$results = YourModel::search($keyword)
->rule(function ($builder) {
return $builder->whereRaw('LOWER(column_name) LIKE ?', ['%' . strtolower($this->builder->query) . '%']);
})
->get();
は自分のモデル名に置き換えて使用してください。search
メソッドを使用してキーワードを検索し、rule
メソッドを使用してクエリのカスタムルールを定義しています。
これらの方法を使用することで、Laravelで大文字小文字を区別せずに文字列を検索することができます。適切な方法を選択し、プロジェクトの要件に応じて適用してください。