【发布时间】:2021-02-27 21:12:43
【问题描述】:
今天出人意料的是,我很震惊 Laravel 8 雄辩的 WHERE 子句不敏感。
我怎样才能让它再次敏感?
这是我的代码 路线/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] );
});
结果
content:"Welcome to [DAL51]"
code: 200
var: "dAl51"
【问题讨论】:
-
我输入了 //domain/dAl51 并且在帖子表中的俚语是 DAL51
-
这听起来更像是你的数据库而不是 laravel 的变化。你的 MySQL 默认字符集和排序规则是什么?
-
您需要使用 DB::raw(),例如
App\Models\Post::where(DB::raw('BINARY slang'), $slang)->first();或App\Models\Post::whereRaw("BINARY slang = '$slang'")->first(); -
@sta 完美运行
-
这能回答你的问题吗? Case-sensitive where statement in laravel
标签: mysql laravel eloquent laravel-8