2014-03-24 1 views
0

필터가 검사에 실패하면 본질적으로 아무 것도 수행하지 않으려는 경로 필터가 있습니다.경로 필터가 실패한 경우 아무 작업도하지 않음

기본적으로 제한된 영역을 사용하고 있지만 실패하면 리디렉션하고 싶지 않습니다. 사용자가있는 곳에서 바로 머물러 있어야합니다.

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()은 페이지 새로 고침이 필요하지 않으며 사용자를 혼란시킬 수있는 것을 제외하고는 효과가있는 것처럼 보입니다. 어떤 아이디어?

답변

1

일반적인 양식 POST (또는 심지어 GET)를 사용하여 데이터를 보내는 경우 이미 큰 일을했음을 이해해야합니다. 요청을 보냈으므로 취소 할 수 없습니다. 사용자가 있던 페이지가 이미 사라졌고 현재 새 페이지에 있습니다. 적어도 다시보기를 렌더링해야합니다.

return View::make('my.very.same.view'); 

표시가 깜박이거나 깜박일 수 있으며 페이지에 문제가있는 것 같습니다.

예외 또는 오류가 발생한 경우 동일한 페이지에 머물러 있어야 할 필요가있는 경우 Ajax를 사용하여 데이터를 보내야하고 데이터에 문제가 없으면 수행해야하는 모든 작업을 수행해야합니다.

관련 문제