编写验证和授权逻辑的推荐方法是将该逻辑放在单独的请求类中。 这样,您的控制器代码将保持干净。
您可以通过执行php artisan make:request SomeRequest创建请求类
在Request类的rules()方法中定义验证规则
//SomeRequest.php
public function rules()
{
return [
"name" =>[
'required',
'array', //input must be an array
'min:3'//there must be three members in the array
],
"name.*" => [
'required',
'string',//input must be of type string
'distinct',//members of the array must be unique
'min:3'//each string must have min 3 chars
]
];
}
在您的控制器中编写如下的路由功能
public function someFunction(SomeRequest $request)
{
//request is already validated before reaching this point
//your controller logic goes here
}
请求类带有验证前后的钩子/方法,可以根据业务逻辑和特殊情况自定义钩子/方法,以修改请求类的正常行为。
您可以为类似类型的请求(例如Web和api请求)创建父请求类,然后将一些通用请求逻辑封装在这些父类中。