유효성 검사 및 권한 부여 논리를 작성하는 데 권장되는 방법은 해당 논리를 별도의 요청 클래스에 배치하는 것입니다. 이렇게하면 컨트롤러 코드가 깨끗하게 유지됩니다.
을 실행하여 요청 클래스를 만들 수 있습니다 php artisan make:request SomeRequest
.
각 요청 클래스의 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
]
];
}
컨트롤러에서 다음과 같이 경로 함수를 작성하십시오.
// SomeController.php
public function store(SomeRequest $request)
{
// Request is already validated before reaching this point.
// Your controller logic goes here.
}
public function update(SomeRequest $request)
{
// It isn't uncommon for the same validation to be required
// in multiple places in the same controller. A request class
// can be beneficial in this way.
}
각 요청 클래스에는 요청 클래스의 정상적인 동작을 수정하기 위해 비즈니스 로직 및 특수 사례를 기반으로 사용자 정의 할 수있는 사전 및 사후 유효성 검사 후크 / 메서드가 함께 제공됩니다.
유사한 유형의 요청 (예 : web
및 api
)에 대해 부모 요청 클래스를 만든 다음 이러한 부모 클래스에 몇 가지 공통 요청 논리를 캡슐화 할 수 있습니다.
$request->validate([...])
. 데이터가 유효성 검사에 실패하면 예외가 발생합니다.