从带有对象的数组发出Laravel请求

时间:2020-02-22 11:29:24

标签: arrays laravel validation laravel-5 request

我有一个使用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);
    });

数组的结构是这样的:

[{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 个答案:

答案 0 :(得分:7)

您可以像这样验证数组元素

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

使用.可以访问数组中的索引,并且*可以处理数组中的所有索引。

相关问题