diff --git a/app/Http/Middleware/ParamsValidation.php b/app/Http/Middleware/ParamsValidation.php index 7927928e16a36ae131e375bdfe7c103aff7058ef..c429f9762055447f81de31fabb47b71a919e6033 100644 --- a/app/Http/Middleware/ParamsValidation.php +++ b/app/Http/Middleware/ParamsValidation.php @@ -39,7 +39,7 @@ class ParamsValidation $rRoute = $request->route(); if( isset($rRoute[2]) && count($rRoute[2])>0 ) { - $RouteList = Utils::getRouteList(); + $RouteList = Utils::getRouteList($request->method()); $parasKey = $rRoute[2]; $path = array_filter($RouteList, function($v) use ($parasKey, $path) { $vv = $v; diff --git a/app/Utils/Utils.php b/app/Utils/Utils.php index afc62acf5dc46cd7579b0eecdf37eac1e0371e1d..e0585f40e69615367a6376fc44bcde00c2c1b516 100644 --- a/app/Utils/Utils.php +++ b/app/Utils/Utils.php @@ -66,4 +66,21 @@ class Utils return $result; } + /** + * 获取所有路由列表 + * @param string $method + * @return array + */ + public static function getRouteList($method='') + { + $path = []; + $routes = Route::getRoutes(); + foreach ($routes as $k=>$value) + { + if( strlen($method)>0 && $value['method'] != $method ) continue; + $path[] = $value['uri']; + } + + return $path; + } } \ No newline at end of file diff --git a/app/Validator/BaseValidator.php b/app/Validator/BaseValidator.php index 074581c90fd83dd8eb03e232d064c5d1cedd9e3b..a02e409e8387b84e4fbc64d013eae33e75d895c4 100644 --- a/app/Validator/BaseValidator.php +++ b/app/Validator/BaseValidator.php @@ -112,6 +112,13 @@ abstract class BaseValidator * @return array */ public function getRules() : array { + $request = $this->request; + $method = strtolower($request->method()); // "POST" + + if (isset($this->rules[$method][$this->uri])) { + return $this->rules[$method][$this->uri]; + } + if (isset($this->rules[$this->uri])) { return $this->rules[$this->uri]; }