【问题标题】:Laravel Response Codes & MessageLaravel 响应代码和消息
【发布时间】:2017-02-15 05:46:54
【问题描述】:

我正在使用 Laravel 5.3 和 https://github.com/1000hz/bootstrap-validator

我正在根据我在 Laravel 中的数据库检查用户的电子邮件,以检查电子邮件是否正在使用中。

Bootstrap Validator 上的文档声明如果电子邮件地址正常(即不存在)则返回 200,如果存在则返回 4xx 错误。

在我的 Laravel 函数中,我正在执行以下操作:

public function check_email(Request $request)
{
    // Email Address
    $email = User::where('email', $request->input('email'))
            ->take(1)
            ->get();

    $email = $email->toArray();

    if(empty($email))
    {
        return response()->json(['Email Not Taken'], 200);
    }
    else
    {
        return response()->json(['Email In Use'], 400);
    }
}

现在当我运行验证器时,它没有显示消息。这是因为 Laravel 对其响应代码更严格吗?还是我只是做错了什么?

我的 HTML 代码如下:

<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
                                    <input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" placeholder="Email" data-remote="/validate-email" data-error="Please enter your Email Address" required="required">
                                    @if ($errors->has('email'))
                                        <span class="help-block">
                                            <strong>{{ $errors->first('email') }}</strong>
                                         </span><!-- /.help-block -->
                                    @endif
                                    <span class="glyphicon form-control-feedback" aria-hidden="true"></span>
                                    <div class="help-block with-errors"></div>
                            </div><!-- /.form-group -->

如何在 Larvel 5.3 中设置带有消息的 4xx 响应?

谢谢

【问题讨论】:

    标签: php laravel validation twitter-bootstrap-3


    【解决方案1】:

    首先,不要通过查询检查用户是否存在,使用 Laravel 的验证器类 https://laravel.com/docs/5.3/validation 它已经为你完成了这项工作,请参阅:https://laravel.com/docs/5.3/validation#rule-unique

    其次,查看这个库,它几乎可以满足您的需求:https://github.com/proengsoft/laravel-jsvalidation

    【讨论】:

      【解决方案2】:

      您必须在控制器中或创建请求类中进行验证

      https://laravel.com/docs/5.3/validation

      public function check_email(Request $request)
      {
          //validate 
          $this->validate($request, [
              'email' => 'required|unique:users',
          ]);
      
          // Email Address
          $email = User::where('email', $request->input('email'))
                  ->take(1)
                  ->get();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-18
        • 2018-04-03
        • 2018-05-03
        • 2017-02-12
        • 2019-05-07
        • 2017-08-29
        相关资源
        最近更新 更多