Laravel에서 개체의 연관 배열에 대한 유효성 검사를 수행하려고합니다. I는 컨트롤러로 전달개체 배열의 Laravel 배열
유효한 JSON 문자열은 다음과 같다 :
가{
'create': [
{
'artnr': '123456',
'unit': 'Stk.'
},
{
'artnr': '23456',
'unit': 'Kg.'
}
],
'update': [
{
'id': 1
'artnr': '567890',
'unit': 'Stk.'
},
{
'id': 2
'artnr': '67836',
'unit': 'Kg.'
}
]
}
데이터의 유효성을 검사하는 제어 기능과 같다 :
public function store(Request $request)
{
$request->replace(array(
'create' => json_decode($request->create),
'update' => json_decode($request->update)
));
$validator = Validator::make($request->all(), [
'create' => 'required|array',
'create.*.artnr' => 'required|max:20',
'create.*.unit' => 'max:20',
'update' => 'required|array',
'update.*.id' => 'required|exists:products,id',
'update.*.artnr' => 'required|max:20',
'update.*.unit' => 'max:20'
])->validate();
}
I는 store
함수 지정되지만 모든 객체에 대해 artnr
이 존재해야하며 컨트롤러는 artnr
없이 객체를 전달할 때 오류를 발생시키지 않습니다.
내가 잘못하고있는 아이디어가 있습니까?
편집
좋아 user2486의 제안에 따라 서로 다른 샘플 데이터를 사용 후, 그래서 나는 지금은 id
같은 속성을 통과 할 때 유효성 검사기가 연관 배열로, artnr
, unit
을 작동 발견. 이처럼 : 나는 그러나 내 JSON 문자열을 디코딩 할 때
$arr = array(
'create' => array(
array(
'artnr' => '123456',
'unit' => 'Kg'
), array(
'unit' => 'Stk.'
)
), 'update' => array(
array(
'id' => 1,
'unit' => 'Stk.'
), array(
'id' => 2,
'artnr' => '123456',
'unit' => 'Kg'
)
)
);
이 속성은 객체 때문에 오류가 발생하지 않습니다에 구문 분석됩니다!
유효성 검사기 규칙에서 객체에 대해 다른 종류의 표기법을 사용할 수 있습니까?
개체의 유효성을 검사 할 수 없으면 모든 개체를 연관 배열로 변환합니다.
당신이 보낸 것으로 생각되는 샘플 데이터를 포함시킬 수 있습니까? –
유효한 json을 가지고 있는지 확인 했습니까? – C2486
json을 얻고 배열로 변환하는 대신 샘플 배열로 테스트하면 변환 코드를 확인해야합니다. – C2486