我的问题是我的POST请求总是在错误302之后重定向到GET
这是我的路线文件:
Route::auth();
...
Route::post('/personnalite/creer', 'PersonnaliteController@creerPost')->name('personnaliteCreerPost');
Route::get('/personnalite/creer', 'PersonnaliteController@creerGet')->name('personnaliteCreerGet');
...
当我删除get route befort发布时,laravel路由失败.
我可以在我的web brouter开发工具中重定向之前看到发布请求
这是我的middelware,它在’web’middelwareGroups中注册.
它只是检查路由是否允许用户角色(ACL规则在配置文件中注册)
class MyAclMiddleware {
public function handle($request, Closure $next) {
$myAcl = App::offsetExists('MyAcl') ? App::make('MyAcl') : null;
if($myAcl) {
if(Auth::guest()) {
$myAcl->setRole(0);
} else {
$myAcl->setRole(Auth::user()->role);
}
if($myAcl->isNotAllowed('route.' . Route::getRoutes()->match($request)->getName())) {
return redirect()->route('erreur', ['id' => 0]);
}
}
return $next($request);
}
}
这是我的表单刀片模板:
@extends('layouts.app')
@section('content')
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">Créer une personnalité politique</div>
<div class="panel-body">
{{ @Form::open(['route' => 'personnaliteCreerPost', 'files' => true]) }}
@include('personnalite.subviews.formInfosGenerales')
{{ Form::submit('Créer') }}
{{ @Form::close() }}
@include('personnalite.subviews.listePersonnalites')
</div>
</div>
</div>
</div>
@enduction
其他开箱即用的laravel表格和登录控制器…工作正常.
有人可以帮我解决这个问题吗?
解决方法:
解决了 !
问题是由于我的控制器中的错误表单验证逻辑(测试不足=>没有表单验证=>重定向到以前的表单)
对我感到羞耻