2013-11-29 4 views
1

У меня есть следующий фрагмент кода:Автоматизировать Перенаправление после проверки формы в Laravel 4

 if(Request::ajax()) 
     {      
      $response_values = array(
       'validation_failed' => 1, 
       'errors' => $validator->errors->toArray() 
      ); 
      return Response::json($response_values); 
     } 
     else 
     { 
      return Redirect::route("resource.create") 
       ->withInput() 
       ->withErrors($validator->errors); 
     } 

У меня есть это много в моем коде, и хотел бы найти способ автоматизировать это.

Я попытался создать метод в BaseController, но он не перенаправляется должным образом, я также попробовал фильтр after, но мне не удалось передать параметры после фильтра, поскольку мне нужно было бы передавать ошибки и маршрут.

Как я мог достичь этого?

+1

«... но он не перенаправляется должным образом», что происходит? –

+0

Согласитесь с @AntonioCarlosRibeiro, вам может потребоваться дополнительная информация о методе, который вы пытались создать. В противном случае ответ Антонио ниже должен сделать трюк. –

ответ

3

Это не работает на вас?

class BaseController extends \Controller { 

    public function processAndRedirectError($validator) 
    { 
     if(Request::ajax()) 
     {      
      $response_values = array(
       'validation_failed' => 1, 
       'errors' => $validator->errors->toArray() 
      ); 
      return Response::json($response_values); 
     } 
     else 
     { 
      return Redirect::route("resource.create") 
       ->withInput() 
       ->withErrors($validator->errors); 
     } 
    } 

} 

class MyController extends BaseController { 

    public function store() 
    { 
     $validator = Validator::make(...); 

     return $this->processAndRedirectError($validator); 
    } 

} 
+0

Ну, это неловко, я не возвращал метод с BaseController, просто называя его. Спасибо за быстрый ответ г-н Рибейро. – user2094178

Смежные вопросы