2017-11-11 16 views
0

맞춤 규칙이 필요한 입력란의 유효성을 검사하는 데 문제가 있습니다. 나는 다음과 같은 검증이 있습니다laravel 5.4 맞춤 규칙을 사용하여 배열 유효성 확인

기한 배열이 잘 유효성을 검사하지만, 서비스 ID가 다음과 같은 오류를 반환
$validator = Validator::make($request->all(), [ 
    'order'  => 'required', 
    'service_id.*' => Rule::unique('order_services')->where('order_id', $request->order), 
    'due_date.*' => 'required|date', 
    'vendor' => 'required|integer', 
    'instructions' => 'string|nullable', 
    'lock_box' => 'string|nullable', 
    ]); 

:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'service_id.0' in 'where clause' (SQL: select count(*) as aggregate from `order_services` where `service_id`.`0` = 10 and `order_id` = 100f) 

서비스 ID 규칙이 같은 주문 번호로 중복 레코드를 방지하고 서비스 ID

단일 서비스 ID의 유효성을 검사 할 때 규칙이 예상대로 작동하므로 여러 서비스 ID의 유효성을 동시에 확인하는 방법을 모르겠습니다. 기본적 Laravel 사전

답변

0

에서

덕분에 unique 역할을 위해 키를 사용하고 배열이기 때문에, 키는 등 0, 1, 2,이다. 이 솔루션은 다음과 같은 고유 한 규칙에 대한 열 이름을 추가하고있다 :

귀하의 경우 분명히
Rule::unique('order_services', 'id')->where('order_id', $request->order), 

당신이 id 이외의 열 이름 (이 응용 프로그램에 따라 다릅니다)

+0

감사해야 할 수도 있습니다! 나는 Rule = unique ('order_services', 'service_id') -> where ('order_id', $ request-> order)를 사용하여 끝냈다. – Wireland