meYnot
meYnot

Reputation: 342

Laravel "where" clause is case insensitive by default?

Surprisingly today, I was shocked that Laravel 8 eloquent WHERE clause is insensitive.

How can I make it sensitive again?

here is me code routes/web.php

Route::get('/{slang}', function($slang) {
    $post = App\Models\Post::where('slang', $slang)->first();
    if( ! isset( $post->id ) ) return redirect('/');
    return 
response()->json(['content' => 'Welcome to ['. $post->slang.']', 'code'=>200, 'var'=>$slang] );
});

result

content:"Welcome to [DAL51]"
code:   200
var:    "dAl51"

Upvotes: 1

Views: 791

Answers (1)

STA
STA

Reputation: 34688

You'll need to use DB::raw(), something like :

App\Models\Post::where(DB::raw('BINARY slang'), $slang)->first();

Or, you can use whereRaw() method :

App\Models\Post::whereRaw('BINARY slang=?', $slang)->first();

Upvotes: 1

Related Questions