Laravel での配列の検証
次のコードを使用して Laravel で配列を検証しようとすると:
$validator = Validator::make($request->all(), [ "name.*" => 'required|distinct|min:3', "amount.*" => 'required|integer|min:1', "description.*" => "required|string" ]);
空の POST 送信が誤って有効であると認識され、誤った結果が返されるという予期しないシナリオが発生する可能性があります。 positive.
この混乱は、コード内のアスタリスク記号 (*) が配列自体ではなく、配列内の値を検証することを目的としているために発生します。これに対処するには、配列の存在をチェックするように検証ルールを変更する必要があります。
$validator = Validator::make($request->all(), [ "names" => "required|array|min:3", "names.*" => "required|string|distinct|min:3", ]);
この調整されたコードでは、
Laravel 5.5 以降、簡略化されたアプローチを採用できます。
$data = $request->validate([ "names" => "required|array|min:3", "names.*" => "required|string|distinct|min:3", ]);
このコンパクトな構文を直接使用します。 Request オブジェクトの検証を実行し、$validator 仲介の必要性を排除します。
以上がLaravel で配列を検証する方法: 空の送信とベストプラクティス?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。