Laravel 验证器每次都失败,即使我已发布数据
Laravel Validator fails everytime even i has posted data
我是 laravel 的新手,正在尝试使用验证器 class。每次通过形成 post 数据都会失败。我用谷歌搜索和挖掘了很多东西以从互联网上获得答案,但 none 对我有用。请堆栈人员帮助我解决这个问题。
这是我的控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
class AuthenticationController extends Controller
{
//
public function login()
{
return view('login');
}
public function register()
{
return view('register');
}
public function addUser(Request $request)
{
$Validator=Validator::make($request->all(),array('fname'=>'required'));
if($Validator->fails())
{
return redirect()->back()->withInput()->withErrors($Validator->messages());
}
}
}
这是寄存器blade查看文件
<!DOCTYPE html>
<html>
<head>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<title>Login</title>
</head>
<body>
<div class="wrapper fadeInDown">
<div id="formContent">
<!-- Tabs Titles -->
<!-- Login Form -->
<form method="POST" action="{{url('/register.submit')}}">
<input type="text" id="first-name" class="fadeIn second" name="
fname" placeholder="First Name">
@if($errors->has('fname'))
<div class="alert-danger">
{{$errors->first('fname')}}
</div>
@endif
@csrf
<input type="text" id="last-name" class="fadeIn second" name="
lastname" placeholder="Last Name">
@if($errors->has('last_name'))
<div class="alert-danger">
{{$errors->first('last_name')}}
</div>
@endif
<input type="text" id="email" class="fadeIn second" name="
email" placeholder="Email">
@if($errors->has('email'))
<div class="alert-danger">
{{$errors->first('email')}}
</div>
@endif
<input type="password" id="password" class="fadeIn third" name="login" placeholder="password">
@if($errors->has('password'))
<div class="alert-danger">
{{$errors->first('password')}}
</div>
@endif
<input type="password" id="confirm-password" class="fadeIn third" name="confirmpassword" placeholder="Confirm Password">
@if($errors->has('confirm_password'))
<div class="alert-danger">
{{$errors->first('confirm_password')}}
</div>
@endif
<input type="submit" class="fadeIn fourth" value="Register">
</form>
<!-- Remind Passowrd -->
<div id="formFooter">
<a class="underlineHover" href="{{url('login')}}">Already have account SignIn</a>
<a class="underlineHover" href="{{url('forget_password')}}">Forget Password</a>
</div>
</div>
</div>
</body>
</html>
确保您的 name
属性实际上在 一个 行中,并且不要分布在两行中。在此处显示代码标签中的内容将导致:
name=" fname"
当您在 HTML 中显示此类字符串时,您很可能会看到空格被删除,但 PHP/Laravel 将其识别为空格,因此您的验证失败。
实际上进入视图文件编辑器 sublime 有类似
的换行代码
<input type="text" id="first-name" class="fadeIn second" name="
fname" placeholder="First Name">
所以(我希望如此)laravel当我像
这样编辑代码时,把它当作name='fname'
<input type="text" id="first-name" class="fadeIn second"
name="fname" placeholder="First Name">
修改后效果很好。
我是 laravel 的新手,正在尝试使用验证器 class。每次通过形成 post 数据都会失败。我用谷歌搜索和挖掘了很多东西以从互联网上获得答案,但 none 对我有用。请堆栈人员帮助我解决这个问题。
这是我的控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
class AuthenticationController extends Controller
{
//
public function login()
{
return view('login');
}
public function register()
{
return view('register');
}
public function addUser(Request $request)
{
$Validator=Validator::make($request->all(),array('fname'=>'required'));
if($Validator->fails())
{
return redirect()->back()->withInput()->withErrors($Validator->messages());
}
}
}
这是寄存器blade查看文件
<!DOCTYPE html>
<html>
<head>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<title>Login</title>
</head>
<body>
<div class="wrapper fadeInDown">
<div id="formContent">
<!-- Tabs Titles -->
<!-- Login Form -->
<form method="POST" action="{{url('/register.submit')}}">
<input type="text" id="first-name" class="fadeIn second" name="
fname" placeholder="First Name">
@if($errors->has('fname'))
<div class="alert-danger">
{{$errors->first('fname')}}
</div>
@endif
@csrf
<input type="text" id="last-name" class="fadeIn second" name="
lastname" placeholder="Last Name">
@if($errors->has('last_name'))
<div class="alert-danger">
{{$errors->first('last_name')}}
</div>
@endif
<input type="text" id="email" class="fadeIn second" name="
email" placeholder="Email">
@if($errors->has('email'))
<div class="alert-danger">
{{$errors->first('email')}}
</div>
@endif
<input type="password" id="password" class="fadeIn third" name="login" placeholder="password">
@if($errors->has('password'))
<div class="alert-danger">
{{$errors->first('password')}}
</div>
@endif
<input type="password" id="confirm-password" class="fadeIn third" name="confirmpassword" placeholder="Confirm Password">
@if($errors->has('confirm_password'))
<div class="alert-danger">
{{$errors->first('confirm_password')}}
</div>
@endif
<input type="submit" class="fadeIn fourth" value="Register">
</form>
<!-- Remind Passowrd -->
<div id="formFooter">
<a class="underlineHover" href="{{url('login')}}">Already have account SignIn</a>
<a class="underlineHover" href="{{url('forget_password')}}">Forget Password</a>
</div>
</div>
</div>
</body>
</html>
确保您的 name
属性实际上在 一个 行中,并且不要分布在两行中。在此处显示代码标签中的内容将导致:
name=" fname"
当您在 HTML 中显示此类字符串时,您很可能会看到空格被删除,但 PHP/Laravel 将其识别为空格,因此您的验证失败。
实际上进入视图文件编辑器 sublime 有类似
的换行代码<input type="text" id="first-name" class="fadeIn second" name="
fname" placeholder="First Name">
所以(我希望如此)laravel当我像
这样编辑代码时,把它当作name='fname'<input type="text" id="first-name" class="fadeIn second"
name="fname" placeholder="First Name">
修改后效果很好。