Laravel menyediakan whereBinary() untuk membantu membuat perbandingan string MySQL yang memperhatikan huruf besar dan kecil. Ini berguna ketika aplikasi membedakan Codekop dan codekop, sementara collation database biasanya bersifat case-insensitive.
Contoh query:
$users = User::query()
->whereBinary('username', 'Codekop')
->get();Query ini bukan pengganti validasi atau unique constraint. Aturan data tetap perlu dirancang pada schema database dan diuji sesuai collation yang dipakai.
Kapan fitur ini berguna?
- Pencarian token atau identifier yang case-sensitive.
- Validasi kode undangan atau reference code.
- Migrasi data yang memiliki perbedaan kapitalisasi.
Developer perlu memastikan database driver dan versi Laravel mendukung method tersebut. Gunakan query log pada staging untuk memeriksa SQL yang dihasilkan, dan pertimbangkan index bila kolom sering dicari.
Keamanan
Jangan menggunakan perbandingan case-sensitive sebagai satu-satunya kontrol akses. Authorization, hashing password, rate limit, dan normalisasi input tetap harus diterapkan secara terpisah.
Kesimpulan
whereBinary() memberi API yang lebih jelas untuk kebutuhan query MySQL tertentu. Uji perilakunya pada collation, index, dan data production sebelum melakukan migrasi.
Sumber asli:
https://laravel-news.com/laravel-where-binary