我在我的一个项目中使用Laravel 5.2.29。我正在使用Laravel Request文件来验证我的用户输入。如果验证器失败,则错误消息应显示在输入字段下。
但问题是,如果验证器失败,它不会显示任何错误消息,也不会提交表单。这里是刀片文件,需要3个输入,电子邮件/密码和密码确认
test.blade.php
JsonObject searchId = jsonObject
.getAsJsonObject("body")
.getAsJsonObject("search")
.getAsJsonObject("searchId");
searchId.addProperty("AddANewFieldHere","2016-04-18");
testRequest.php
<!-- email input-->
<div class="form-group {{ $errors->has('email') ? 'has-error' : '' }}">
<label class="col-md-4 control-label" for="email">email</label>
<div class="col-md-4">
<input id="Name" name="email" type="text" placeholder="Enter email address" class="form-control input-md" required="">
{!! $errors->first('email','<span class="help-block">:message</span>') !!}
</div>
</div>
<div class="form-group {{ $errors->has('password') ? 'has-error' : '' }}">
<label class="col-md-4 control-label" for="password">password</label>
<div class="col-md-4">
<input id="Name" name="password" type="password" class="form-control input-md" required="">
{!! $errors->first('password','<span class="help-block">:message</span>') !!}
</div>
</div>
<div class="form-group {{ $errors->has('password_confirmation') ? 'has-error' : '' }}">
<label class="col-md-4 control-label" for="password">Confirm Password</label>
<div class="col-md-4">
<input id="Name" name="password_confirmation" type="password" class="form-control input-md" required="">
{!! $errors->first('password_confirmation','<span class="help-block">:message</span>') !!}
</div>
</div>
<!-- Button -->
<div class="form-group">
<label class="col-md-4 control-label" for=""></label>
<div class="col-md-4">
<button id="" name="" class="btn btn-primary">Submit</button>
</div>
</div>
testController.php(资源控制器)
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'email' => 'required|email',
'password' => 'required|min:3|confirmed'
];
}
routes.php文件
public function store(testRequest $request)
{
$test = User::create([
'email' => $request->email,
'password' => bcrypt($request->password);
]);
return redirect("/");
}
当我点击提交按钮时,在确认密码字段中使用不同的密码,它不会给我任何错误。不提交表格;它至少应该说密码确认不匹配。我认为我的代码没有错。它是版本5.2.29的问题吗?完全相同的事情适用于5.2.22。
答案 0 :(得分:0)
我发现了这个错误。从laravel 5.2.29开始,默认情况下,Web中间件将应用于所有路由。因此,编写以下代码不起作用。
Route::group(['middleware'=>['web']],function(){
Route::resource('test','testController');
});
只需编写Route::resource('test','testController');
即可查看路由服务提供商