【发布时间】:2016-09-15 15:06:47
【问题描述】:
我的问题是我的 POST 请求在错误 302 后总是重定向到 GET
这是我的路线文件:
Route::auth();
...
Route::post('/personnalite/creer', 'PersonnaliteController@creerPost')->name('personnaliteCreerPost');
Route::get('/personnalite/creer', 'PersonnaliteController@creerGet')->name('personnaliteCreerGet');
...
当我在发布之前删除 get 路由时,laravel 路由失败。 我可以在我的网络路由器开发工具中看到重定向之前的发布请求
这是我的 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 表单和登录控制器......工作正常。
谁能帮我解决这个问题?
【问题讨论】:
-
如果oyu掷骰子('here');在 creerPost 方法中是否显示过?
-
还可以尝试在 Form::open 调用中明确将 'method' => 'post' 放入参数中,看看是否有任何改变
-
对于最近升级 Laravel 的用户,请检查控制器中中间件的语法。它可能需要更新。
标签: php redirect laravel-5 routing http-status-code-302