Сделать Laravel запрос из массива с объектами - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть массив, который делает передний конец с js и передает его моему контроллеру с ajax.

Ajax:

var values = [{FirstName: "fff"},{LastName: null}]
$.ajax({
    method: "POST",
    url: "/api/store-step",
    data: { values: values, step: activePanelNum }
    }).fail(function (jqXHR, textStatus, error,result) {
       console.log(jqXHR.responseJSON.errors);
    }).done(function( result ) {
       console.log(result);
    });

Структура массива this:

[{FirstName: "fff"},{LastName: null}]

Контроллер:

public function storeSteps(Request $request)
{     
    $validator = Validator::make($request->values, [
       'FirstName' => 'required',
       'LastName' => 'required',
    ]);

    if ($validator->fails()) {
       return response()->json(['success'=>false, 'errors' => $validator->getMessageBag()->toArray()],422);
        }
}

Я не могу проверить этот массив с проверкой запроса Laravel. Теперь я собираюсь превратить этот массив в запрос Larval, чтобы применить к нему правила.

Может ли кто-нибудь помочь?

1 Ответ

6 голосов
/ 22 февраля 2020

вы можете проверить элемент массива следующим образом

$validator = Validator::make($request->all(), [
            'values' => 'required',
            'values.*.FirstName' => 'required',
            'values.*.lastName' => 'required','
        ]);

, используя ., вы можете получить доступ к индексу в массиве и * яблоки всех индексов в массиве.

...