FormRequest 自定义获取方法名字
需求
之前系统已经引用了自定义表单验证,但是只通过POST
,PUT
方法去区别的话,有些接口验证请求会重复
通过 Action方法名判断
<?php
namespace App\Http\Requests;
use Symfony\Component\HttpKernel\Exception\HttpException; // 注意是抛出这个类型的异常。
use Illuminate\Contracts\Validation\Validator;
use \Illuminate\Foundation\Http\FormRequest as BaseFormRequest;
class FormRequest extends BaseFormRequest{
//主要是重写这个方法。
protected function failedValidation(Validator $validator)
{
throw new HttpException(401, $validator->errors()->first());
}
//获取方法名字
public function getRouteActionName()
{
$action = $this->route()->getAction();
$controller = '@';
if (isset($action['uses'])) {
$controller = class_basename($action['uses']);
}
list($routeControllerName, $routeActionName) = explode('@', $controller);
return $routeActionName;
}
}
只需在各个子类中调用方法即可
本作品采用《CC 协议》,转载必须注明作者和本文链接