Laravel에서 배열의 유효성을 검사하는 방법은 무엇입니까?
Laravel에서 어레이 POST의 유효성을 검사합니다.
$validator = Validator::make($request->all(), [
"name.*" => 'required|distinct|min:3',
"amount.*" => 'required|integer|min:1',
"description.*" => "required|string"
]);
내가 POST를 비우고이 얻을 전송 if ($validator->fails()) {}
로 False
. 유효성 검사가 사실이라는 것은 사실입니다.
Laravel에서 배열을 숙주로하는 방법은 무엇입니까? 양식을 신청할 때input name="name[]"
별표 기호 (*)는 실제 배열이 아닌 배열의 값을 확인하고자 함을 의미합니다.
$validator = Validator::make($request->all(), [
"name" => "required|array|min:3",
"name.*" => "required|string|distinct|min:3",
]);
위의 예에서 :
- "이름"은 요소가 3 개 이상인 배열이어야합니다.
- "이름"배열의 값은 3 자 고유 한 (고유 한) 이상의 숫자입니다.
편집 : Laravel 5.5부터 다음과 같이 요청에서 직접 validate () 메서드를 호출 할 수 있습니다.
$data = $request->validate([
"name" => "required|array|min:3",
"name.*" => "required|string|distinct|min:3",
]);
이 배열을 HTML + Vue.js 데이터 그리드 / 테이블의 요청 데이터로 사용합니다.
[0] => Array
(
[item_id] => 1
[item_no] => 3123
[size] => 3e
)
[1] => Array
(
[item_id] => 2
[item_no] => 7688
[size] => 5b
)
그리고 이것을 사용하여 제대로 작동하는지 확인하십시오.
$this->validate($request, [
'*.item_id' => 'required|integer',
'*.item_no' => 'required|integer',
'*.size' => 'required|max:191',
]);
유효성 검사 및 권한 부여 논리를 작성하는 데 권장되는 방법은 해당 논리를 별도의 요청 클래스에 배치하는 것입니다. 이렇게하면 컨트롤러 코드가 깨끗하게 유지됩니다.
다음을 실행하여 요청 클래스를 만들 수 있습니다. php artisan make:request SomeRequest
요청 클래스의 규칙 () 메서드에서 유효성 검사 규칙을 정의합니다.
//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
}
클래스는 요청 클래스의 명령 동작을 수정하기 위해 비즈니스 운영 및 특수 사례를 기반으로 사용자 정의 할 수있는 사전 및 사후 유효성 검사 후크 / 메서드와 함께 제공됩니다.
웹 및 API 요청과 같은 주문 유형의 요청에 대한 부모 요청 클래스를 만든 다음 구매할 부모 클래스에 몇 가지 요청 논리를 캡슐화 할 수 있습니다.
: 여기에 설명 된대로 각 입력에 대한 입력 배열 및 추가 규칙을 통해 루프가 루프 이상 규칙
다음은 몇 가지 코드입니다.
$input = Request::all();
$rules = [];
foreach($input['name'] as $key => $val)
{
$rules['name.'.$key] = 'required|distinct|min:3';
}
$rules['amount'] = 'required|integer|min:1';
$rules['description'] = 'required|string';
$validator = Validator::make($input, $rules);
//Now check validation:
if ($validator->fails())
{
/* do something */
}
참고 URL : https://stackoverflow.com/questions/42258185/how-to-validate-array-in-laravel
'ProgramingTip' 카테고리의 다른 글
명령 줄 .cmd / .bat 펼쳐서, 실행중인 펼쳐의 디렉터리를 가져 오는 방법 (0) | 2020.10.11 |
---|---|
Ruby에서 배열 생성 또는 추가 (0) | 2020.10.11 |
Babel 7로 업그레이드 : null의 '바인딩'속 읽을 수 없습니다. (0) | 2020.10.11 |
Linux에서 Python 펼쳐보기를 통해 스크린 샷 찍기 (0) | 2020.10.11 |
왜 Project Jigsaw / JPMS입니까? (0) | 2020.10.11 |