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

时间:2018-09-01 09:55:25

标签: php laravel laravel-routing laravel-validation

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

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

此外,如何添加自定义验证,例如,确保仅显示“请填写姓名字段”,而不显示消息“ Name is required”。

1 个答案:

答案 0 :(得分: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"
}