流明 laravel: 如何 return 第一个错误的消息?

lumen laravel: How to return the message of the first error?

我需要在 Lumen 中自定义验证响应,如下所示

{
    "result": null,
    "count": 0,
    "statusCode": -1,
    "statusMessage": "...."
}

如您所见,无论发生多少错误,都必须显示一条状态消息。为此,我在基本控制器中添加了以下功能

protected function buildFailedValidationResponse(Request $request, array $errors)
{
    $string = null;

    foreach ($errors as $error)
    {
        $string = $error[0];
        break;
    }

    return [
        "result" => null,
        "count" => 0,
        "statusCode" => -1,
        "statusMessage" => $string
    ];
}

这是dd($errors)

的结果
array:2 [
    "user_id" => array:1 [
        0 => "The user id field is required."
    ]
    "asd" => array:1 [
        0 => "The asd field is required."
    ]
]

可以用,但看起来很乱!我怎样才能 return 第一个错误的消息?

如果你的数组是这样的:

$array = [
    "user_id"=> [
        0 => "sssss"
    ],
    "asd"=> [
        0 => "ttttt"
    ]
];

这对你有帮助:

return reset($array)[0];

结果:sssss

充分利用 Collections。如果 $errors 已经是 collection(肯定是 ErrorBag),您可以将其作为数组错误然后 flatten 它们。

$errors = collect($errors);

$string = $errors->flatten()->first();