【问题标题】:Email unique validations rules are not working in laravel电子邮件唯一验证规则在 laravel 中不起作用
【发布时间】:2020-05-26 10:39:22
【问题描述】:

您好,我在 Laravel 项目中工作,我正在使用 js 验证器来验证表单文件,但如果我使用 unique:users 验证规则,则同样无法正常工作。我想要提交独特的电子邮件。如果我使用它,我将无法提交表单本身。所有其他验证规则都正常工作。

请帮我找出问题

以下是 UserController 中的代码,我应用了验证规则

<?php

namespace App\Http\Controllers;
use App\Http\Controllers;
use Illuminate\Http\Request;
use JsValidator;
use Validator;
use App\User;
use Illuminate\Support\Facades\Hash;
use App\Mail\WelcomeMail;
use Illuminate\Support\Facades\Mail;
use DB;
use Session;
use Redirect;
use Carbon\Carbon;
use App\Libraries\GlobalHelpers;
use App\Libraries\ImageHelpers;
use Auth;
use Response;


class UserController extends Controller
{
    protected $userValidationRules = [
        'user_name' => 'required',
        'email' => 'required|email|max:255|unique:users',
    ];
 public function addUsers()
    {
        $validator = JsValidator::make($this->userValidationRules,[],[],'#addusers');
        return view('user.add')->with(['validator' => $validator]);
    }
}

以下是视图文件中的代码

@extends('user.layout.app')

@section('content')
    <script src="{{ url('js/user/location.js') }}"></script>
    <div class="container-fluid add-location">
        <div class="row">
            <div class="col-md-12">
                <div class="card">
                    <form method="post"  action="{{ route('storeUsers') }}" name="addusers" id="addusers" enctype="multipart/form-data" novalidate>
                        {{ csrf_field() }}
                        <div class="card-header">
                            <h4 class="card-title"> Add Users </h4>
                        </div>
                        @if(!empty($errors->all()))
                            <div class="row"> @foreach ($errors->all() as $error)
                                    <div class="col-lg-12">
                                        <div class="alert alert-danger"> <span>{{ $error }}</span> </div>
                                    </div>
                                @endforeach </div>
                        @endif
                        <div class="card-content">
                            <div class="row">
                                <div class="col-xs-12 col-sm-12 col-md-12">
                                    <div class="form-group">
                                        <label class="control-label">Full Name
                                            <star>*</star>
                                        </label>
                                        <input id="user_name" name="user_name" class="controls form-control" type="text" placeholder="User Name">
                                        @if ($errors->has('user_name')) <span class="help-block"> {{ $errors->first('user_name') }} </span> @endif </div>
                                </div>

                                <div class="col-xs-12 col-sm-12 col-md-12">
                                    <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
                                        <label for="email" class="control-label">Email
                                            <star>*</star>
                                        </label>
                                        <input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" placeholder="Email">
                                        @if ($errors->has('email'))
                                            <span class="help-block">
                                        <strong>{{ $errors->first('email') }}</strong>
                                    </span>
                                        @endif
                                    </div>
                                </div>

</div>
                            <div class="row">


                                <div class="col-xs-12 col-sm-12 col-md-6">
                                    <div class="col-xs-12 col-sm-12 col-md-12 form-action">
                                        <button type="submit" class="btn btn-fill btn-info">Submit</button>
                                        <a href="" class="btn btn-default btn-fill">Cancel</a> </div>
                                </div>
                    </form>
                </div>
            </div>
        </div>
    </div>

    {!! $validator !!}
@endsection

什么问题,为什么唯一验证不起作用?

【问题讨论】:

  • 'email' =>'required|string|email|max:255|unique:users,email',
  • 不,它不工作

标签: php laravel


【解决方案1】:
protected $userValidationRules = [
        'user_name' => 'required',
        'email' => 'required|email|max:255|unique:users,email',
    ];

独特的:表,列 根据 https://laravel.com/docs/6.x/validation#rule-unique

【讨论】:

    【解决方案2】:

    提交存储的时候还需要通过验证规则,只有它会检查

    $this->validate($request, [
                'email' => 'required|email|max:255|unique:users'
            ]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-03
      • 2015-04-04
      • 2017-11-17
      • 2016-12-21
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 2015-02-27
      相关资源
      最近更新 更多