电子邮件唯一验证规则在Laravel中不起作用 [英] Email unique validations rules are not working in laravel
问题描述
我在Laravel项目中工作,我正在使用js验证程序来验证表单文件,但是如果我使用unique:users
验证规则,则无法正常工作.我希望提交独特的电子邮件.如果我使用此功能,则我将无法提交表单本身.所有其他验证规则均正常运行.
Hi i am working in Laravel project,i am using js validator to validate the form fileds, but if i use unique:users
validation rule, the same is not working. I want unique emails to be submitted. If i use this i will not be able to submit the form itself.All other validation rules are working properly.
请帮助我找出问题所在
以下是UserController中的代码,我应用了验证规则
Following is the code in UserController,which i apply validation rules
<?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]);
}
}
以下是视图文件中的代码
Following is the code in view file
@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
问题是什么,为什么唯一验证不起作用?
What is the issue,why unique validation is not working?
推荐答案
在提交仓库时,您还需要通过验证规则,然后只有它会检查
While submitting storeage you also need to pass validation rules,then only it will check
$this->validate($request, [
'email' => 'required|email|max:255|unique:users'
]);
这篇关于电子邮件唯一验证规则在Laravel中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!