返回不带空格的数据


Return data with no whitespace

我正在使用Laravel 5.2。我正在寻找雄辩的查询用户名,以便创建一个唯一的个人资料页面。我遇到的问题是用户名返回带有空格,例如 John Doe,我需要它返回时没有像 johndoe 或 JohnDoe 这样的空格。谢谢。

public function show($username)
{
    try
    {
        $user = str_replace(' ', '', User::wherename($username)->firstOrFail());
        dd($user);
    }
    catch(ModelNotFoundException $e)
    {
        return redirect()->action('HomeController@index');
    }
}
您可以在

User模型上创建一个函数,该函数返回不带任何空格的name。这样:

public function getNameWithoutSpaces() {
    return preg_replace('/'s+/', '', $this->name);
}

这样,您可以在任何需要的地方获取不带空格的名称,而无需一直使用 str_replace 函数。

$user = User::wherename($username)->first()
$UserName = preg_replace('/'s+/', '', $user->name);
print_r($UserName );die;

可以帮助 -

str_replace(" ", "", "John Doe");

或者如果有多个空格(连续)-

preg_replace('/'s+/', '', "John Doe");
$user = User::wherename($username)->first();
if($user){
  $user_name = preg_replace('/'s+/', '', $user->name); //or other column that you need to clean
  return dd($user_name);
} 
return 'No user found!';

更新

经过讨论,我认为您需要使用蛞蝓:

$user = User::findBySlug($username);
$name = $user->name;

在这种情况下,您的表格中有两列:名称(例如"John Doe")和 slug("JohnDoe"或"johndoe"或"John_Doe"等)。

原答案

如果要删除字符串开头和结尾的空格,请尝试修剪它们:

$userOriginal = User::where('name', $username)->first();
$user = trim($userOriginal->name);

要删除所有空格,请使用以下命令:

$user= str_replace(' ', '', User::where('name', $username-)->first()->name);

您可以在用户模型上定义 getter

public function getNameAttribute() {
    return preg_replace('/'s+/', '', $this->attribute['name'])
}

之后,当您尝试获取$user->name时,它总是没有空格。