Php 在获得laravel elequent中的结果之前,请删除空格

Php 在获得laravel elequent中的结果之前,请删除空格,php,laravel,Php,Laravel,我想在laravel controller中比较搜索结果 当用户输入名称并搜索时。在我的控制器中,它将删除输入空间并比较从数据库检索到的数据 提交的用户是John Doe preg_match_all('/\@([^\s\.]+)/', $request->name, $matches); 删除空格,使其成为JohnDoe。然后使用 $user = User::where('name', $name)->first(); 我希望在比较结果之前删除名称列空格。例如,从数据库列获取的

我想在laravel controller中比较搜索结果

当用户输入名称并搜索时。在我的控制器中,它将删除输入空间并比较从数据库检索到的数据

提交的用户是John Doe

preg_match_all('/\@([^\s\.]+)/', $request->name, $matches);
删除空格,使其成为JohnDoe。然后使用

$user = User::where('name', $name)->first();
我希望在比较结果之前删除名称列空格。例如,从数据库列获取的数据是johndoe。如何删除空格并进行比较。
$user=user::where('John Doe',$matches)->first()

尝试使用
whereRaw

$user = User::whereRaw("name REGEXP 'your_regex'")->first();

我发现这种方法是可行的

$user = User::where('name','%'.$name.'%')
                    ->orWhere('name','LIKE','%'.preg_replace('/\@([^\s\.]+)/', '', $name).'%')->first();
我想说:

  • 如果要将不同的数据保存到真正需要的数据,则会出现问题。我的意思是,你可以很容易地拯救约翰多和它的简单,也使生活变得容易

  • 您可以将原始sql查询与
    whereRaw()
    方法一起使用,如下所示:

    User::whereRaw("REPLACE(`name`, ' ', '') = ? ", $name)->first();
    

  • REPLACE()。查找有关mysql的更多信息
    REPLACE()

    您是说您的db表列带有“John Doe”还是“name”列的一个值是“John Doe”?@omisakinoruwatobi“name”列的一个值是“John Doe”