我正在尝试将验证错误显示在我的应用程序中并且遇到了问题。
我尝试了几种不同的方法,这就是我目前设置的方式......
我的路线看起来像这样:
<?php
Route::group(['middleware' => ['web']], function () {
Route::get('/', [
'as' => 'home',
'uses' => 'HomeController@index'
]);
Route::post('/mailing', [
'as' => 'mailing.create',
'uses' => 'MailingController@create'
]);
});
我的邮件控制器如下所示:
class MailingController extends Controller
{
public function create(Request $request)
{
$this->validate($request, [
'email' => 'required',
]);
dd($request->email);
}
}
我的表单看起来像这样......
<form action="{{ route('mailing.create') }}" method="post">
<label for="email">
Email
<input type="text" name="email" id="email">
@if ($errors->has('email'))
{{ $errors->first('email') }}
@endif
</label>
<input type="submit">
{{ csrf_field() }}
</form>
当我提交一个空表单时,它会转到MailingController中的create方法,但是没有任何反应,也没有显示错误。只是形式。
真的应该可行,问题可能是上面的例子对Laravel 5.1有用但在最新的5.2版本中不起作用吗?
非常感谢你的好意。
答案 0 :(得分:1)
您可以在official documentation中看到默认情况下应用了Web中间件组:
请记住,Web中间件组会自动应用于 您的默认routes.php文件由RouteServiceProvider。
如果你执行
php artisan route:list
您可以看到中间件被应用于Web路由器两次。
您必须删除该组
Route::group(['middleware' => ['web']], function () {
}
这在次要的5.2版本中有所改变,因此很可能在&#34;作曲家更新&#34;之后出现此错误。
答案 1 :(得分:0)
好吧,我似乎必须回答我自己的问题......在laravel 5.2中,路由自动在中间件路由中,因此改变路由...
<?php
Route::group(['middleware' => ['web']], function () {
Route::get('/', [
'as' => 'home',
'uses' => 'HomeController@index'
]);
Route::post('/mailing', [
'as' => 'mailing.create',
'uses' => 'MailingController@create'
]);
});
到
<?php
Route::get('/', [
'as' => 'home',
'uses' => 'HomeController@index'
]);
Route::post('/mailing', [
'as' => 'mailing.create',
'uses' => 'MailingController@create'
]);
修正了一切。