首页 > 解决方案 > 如何在 laravel 中使用验证更新我的表单?

问题描述

我的表单验证在 Laravel 中不起作用。如何在 Laravel 中使用验证更新我的表单?

你可以在这里查看我的代码-

public function update(Request $request, $id)
{
    $id->validate([
        'Name'=>'required',
        'UserName'=>'required',
        'Password'=>'required|min:6',
        'email'=>'required|email',
    ]);

    $updateInfo= Info::findOrFail($id);
    $updateInfo->user_id = $request->input('user_id');
    $updateInfo->Name = $request->input('Name');
    $updateInfo->UserName = $request->input('UserName');
    $updateInfo->Password = $request->input('Password');
    $updateInfo->save();

    return redirect('/info');
}

标签: laravel-5eloquent

解决方案


你需要在 $request 上调用 validate,像这样-

$request->validate([
    'Name'=>'required',
    'UserName'=>'required',
    'Password'=>'required|min:6',
    'email'=>'required|email',
]);

这是完整的代码-

public function update(Request $request, $id)
{
    $request->validate([
        'Name'=>'required',
        'UserName'=>'required',
        'Password'=>'required|min:6',
        'email'=>'required|email',
    ]);

    if (!$validator->fails()) {
        $updateInfo= Info::findOrFail($id);
        $updateInfo->user_id = $request->input('user_id');
        $updateInfo->Name = $request->input('Name');
        $updateInfo->UserName = $request->input('UserName');
        $updateInfo->Password = $request->input('Password');
        $updateInfo->save();
    } else {
       \Session::flash('error', $validator->messages()->first());

        return redirect()->back()->withInput();
    }


    return redirect('/info');
}

我在代码中添加了一个条件来处理验证错误。如果验证失败,那么它将使用您的输入以及验证错误消息重定向回来。确保刀片视图中有错误会话闪烁以显示错误。


推荐阅读