我有一个路由过滤器,如果过滤器未通过检查,我基本上什么都不做。
我基本上是在限制区域,但如果失败则我不想重定向,我宁愿用户留在原地。
Route::group(array("prefix"=>"protected", "before"=>"level:3"),function(){ ... }
Route::filter('level', function($route, $request, $value)
{
if(Auth::user()->level < $value) // do nothing
}
不幸的是,什么都不做会导致访问页面。 Doing Route::back()
似乎有效,除了没有页面刷新,其中一个不是必需的,可能会使用户感到困惑。有什么想法吗?
答案 0 :(得分:1)
你必须明白,如果你正在做普通表格POST(或甚至是GET)来发送数据,你已经做了一件大事:你发送了一个请求而你却无法收回。用户所在的页面已经消失,他现在正在新页面中。您必须至少再次渲染视图:
return View::make('my.very.same.view');
它可能会闪烁/闪烁,看起来页面上会发生某些事情。
因此,如果您需要,如果出现异常或错误,请保留在同一页面中,您必须使用Ajax发送数据,如果您的数据完好无损,请执行您需要执行的任何操作。< / p>