我有以下代码:
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中创建一个方法,但它没有正确重定向,我也尝试了一个后过滤器,但我无法在过滤后将参数传递给它,因为我需要传递错误和路由。
我怎么能实现这个目标?
答案 0 :(得分: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);
}
}