如果在Laravel中使用路由完成CRUD操作,如何添加验证

问题描述 投票:1回答:1

如果使用路由而不是控制器,我想请求您如何为表单添加验证。我到目前为止使用的代码:

Route::post('/contact/submit', function (Request $request) {
    validate($request,[
        'FirstName'=>'required',
        'LastName'=>'required',
        'Age'=>'required'
    ]);

此外,如何添加自定义验证,例如,以确保代替“名称是必需的”消息只显示“请填写名称字段”。

php laravel laravel-routing laravel-validation
1个回答
3
投票

是的,您需要使用Validator类,是的,您还可以为自定义消息添加另一个变量。

Route::post('/contact/submit', function (Illuminate\Http\Request $request) {
    $rules = [
        'FirstName' => 'required',
        'LastName' => 'required',
    ];
    $messages = [
        "FirstName.required" => "First name is compulsory.",
        "LastName.required" => "Last name is mandadory.",
    ];
    $validator = Validator::make($request->all(), $rules,$messages);
    if($validator->fails()){
        return dd($validator->messages());
    }
});

错误消息将是

MessageBag {#1332 ▼
  #messages: array:2 [▼
    "FirstName" => array:1 [▼
      0 => "First name is compulsory."
    ]
    "LastName" => array:1 [▼
      0 => "Last name is mandadory."
    ]
  ]
  #format: ":message"
}
© www.soinside.com 2019 - 2024. All rights reserved.