尊龙凯时人生就是博

laravel注册过失处理

最近在使用 laravel 框架举行开发时,遇到了一些关于注册表单的过失处理问题。在本文中,我将分享我怎样使用 laravel 的表单验证和过失处理功效来解决这些过失,以资助其他开发者更好地处理注册表单的过失。

首先,我们需要相识 Laravel 中的表单验证和过失处理机制。在 Laravel 中,我们可以使用 Validator 类来验证表单数据。验证器可以验证输入数据是否知足划定的条件,如必填字段、邮箱名堂、密码长度等等。若是输入数据不知足划定的条件,则验证器会返回一个过失数组。我们可以使用 withErrors() 要领将过失信息存储到 Session 中,然后在视图中显示过失信息。接下来,让我们看看怎样在 Laravel 中实现这个功效。

首先,我们需要在注册控制器中建设一个验证器。我们可以使用 Artisan 下令 make:validator 来建设验证器。例如:

php artisan make:validator RegisterValidator

登录后复制

这会在 app/Validators 目录下建设一个名为 RegisterValidator 的验证器。然后我们需要设置验证规则和过失信息。翻开 RegisterValidator 类,添加以下代码:

<?php

namespace AppValidators;

use IlluminateValidationValidator;

class RegisterValidator extends Validator
{
    protected $messages = [
        'name.required' => '请输入用户名。',
        'name.max' => '用户名不可凌驾255个字符。',
        'email.required' => '请输入邮箱地点。',
        'email.email' => '请输入有用的邮箱地点。',
        'email.unique' => '该邮箱已经被注册。',
        'password.required' => '请输入密码。',
        'password.min' => '密码长度不可小于6个字符。',
        'password_confirmation.required' => '请输入确认密码。',
        'password_confirmation.same' => '两次输入的密码纷歧致。',
    ];

    public function validateConfirmPassword($attribute, $value, $parameters)
    {
        $other = $this->getValue($parameters[0]);
        return isset($other) && strcmp($value, $other) === 0;
    }
}

登录后复制

在上面的代码中,我们界说了一些常见的验证规则和过失信息。若是用户没有输入必填项或者输入名堂不准确,将会显示响应的过失信息。别的,我们还界说了一个自界说验证规则 validateConfirmPassword 来验证两次输入的密码是否一致。接下来,在注册控制器中添加以下代码:

<?php

namespace AppHttpControllers;

use AppUser;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
use AppValidatorsRegisterValidator;

class RegisterController extends Controller
{
    public function showRegistrationForm()
    {
        return view('auth.register');
    }

    public function register(Request $request)
    {
        // 验证表单数据
        $validator = Validator::make($request->all(), [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|min:6|confirmed',
        ]);

        // 使用自界说的 validator 类的规则验证数据
        $validator->setValidator(new RegisterValidator($validator->getTranslator()));

        if ($validator->fails()) {
            return redirect()->back()->withErrors($validator)->withInput();
        }

        // 建设用户
        $user = User::create([
            'name' => $request->input('name'),
            'email' => $request->input('email'),
            'password' => bcrypt($request->input('password')),
        ]);

        // 登任命户
        auth()->login($user);

        // 跳转到首页
        return redirect()->intended('/');
    }
}

登录后复制

在上面的代码中,我们使用 Laravel 内置的 Validator 类来验证表单数据。然后我们挪用 setValidator() 要领来应用我们建设的自界说 validator 类的规则验证数据。若是有过失,我们将过失信息存储到 Session 中并将用户重定向回表单页面。若是验证通过,我们建设用户并将其登录。最后,我们将用户重定向到主页。

在模板中,我们可以使用以下代码来显示过失信息:

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

登录后复制

上面的代码将遍历 $errors 变量中的所有过失信息,并将每个过失信息作为一个列表项举行显示。

在这篇文章中,我们学习了怎样在 Laravel 中使用表单验证和过失处理功效来处理注册表单的过失。通过使用自界说 validator 类来扩展 Laravel 内置的 validator 功效,我们可以轻松地自界说规则和过失信息,提高代码的可重用性和可维护性。希望这篇文章能够资助到你更好地处理表单验证和过失处理。

以上就是laravel注册过失处理的详细内容,更多请关注本网内其它相关文章!

免责说明:以上展示内容泉源于相助媒体、企业机构、网友提供或网络网络整理,版权争议与本站无关,文章涉及看法与看法不代表尊龙凯时人生就是博滤油机网官方态度,请读者仅做参考。本文接待转载,转载请说明来由。若您以为本文侵占了您的版权信息,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息,请您连忙联系尊龙凯时人生就是博实时修正或删除。

相关新闻

联系尊龙凯时人生就是博

18523999891

可微信在线咨询

事情时间:周一至周五,9:30-18:30,节沐日休息

QR code
sitemap网站地图