【问题标题】:Laravel, Check if name of user exist on original laravel authLaravel,检查原始 laravel auth 上是否存在用户名
【发布时间】:2018-04-12 09:06:22
【问题描述】:

我有 laravel 应用程序!我使用来自

的原始 laravel 身份验证

php artisan make:auth

我的问题是如何检查名称是否已存在于数据库中,如果存在则返回错误消息!

我的用户表结构是:-

user: 
 id - UNIQUE 
 name 
 email  
 password  
 remembertoken  
 timestamps

【问题讨论】:

  • User::where("name", $nameToTestAgainst)->first();如果它返回任何东西,那么它就存在,对吧?
  • 是的,但我想当用户在注册表单中输入数据时检查默认的 Laravel RegisterController(如果名称存在)!我试过这种方式但返回错误! :)
  • 在这种情况下问题需要更详细......无论如何......如果你想验证输入,然后使用 laravel 验证器;)

标签: php laravel authentication eloquent frameworks


【解决方案1】:

Laravel form validation

从那里引用以下内容:

对名称使用“唯一”规则。

$request->validate([
    'name' => 'required|unique:users'
]);

并显示如下错误:

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div> @endif

【讨论】:

    【解决方案2】:

    您实际上有两种解决方案:

    1. 确保您对数据库的名称具有唯一约束
    2. 请看下面的代码

      $user = User::where("name", $nameToTestAgainst)->first();
      
      if($user!= null) {
          $v->errors()->add('Duplicate', 'Duplicate user found!');
          return redirect('to-your-view')
                         ->withErrors($v)
                         ->withInput();
      }
      

    【讨论】:

      【解决方案3】:

      您可以在刀片文件中使用 auth()->user()->name。

      <?php $name=auth()->user()->name; ?>
      

      【讨论】:

        猜你喜欢
        • 2017-07-13
        • 1970-01-01
        • 2015-11-19
        • 2017-03-16
        • 1970-01-01
        • 2014-10-02
        • 2018-02-28
        • 2015-01-21
        相关资源
        最近更新 更多