laravel表单数据验证

1. laravel提供的数据验证有多个方法,每个验证规则用“|”隔开。

表单与ajax的csrf处理

表单处理:{{csrf_field()}}

ajax处理:{{csrf_token}}

  注意:表单处理和ajx提交处理是不一样的。区别在于表单处理的会多生成一个存放token的隐藏域。

我们先创造控制器与页面

 

1、使用控制器$this->validate进行表单验证

2、独立方式去验证表单

3、验证器

1、使用$this->validate进行表单验证

如果传入的请求参数未通过给定的验证规则呢?正如前面所提到的,Laravel 会自动把用户重定向到之前的位置。另外,所有的验证错误信息会被自动 存储到 session 中。

重申一次,我们不必在 GET 路由中将错误消息显式绑定到视图。因为 Lavarel 会检查在 Session 数据中的错误信息,并自动将其绑定到视图(如果这个视图文件存在)。而其中的变量 $errors 是 Illuminate\Support\MessageBag 的一个实例。errors 变量被 Web 中间件组提供的 Illuminate\View\Middleware\ShareErrorsFromSession 中间件绑定到视图中。 当这个中间件被应用后,在你的视图中就可以获取到 $error 变量 , 可以使一直假定 $errors 变量存在并且可以安全地使用。

如下图:

$input = $this->validate(
            $request,
            [
                'username' => 'required|between:2,6',
                'password' => 'required|confirmed',
                'password_confirmation' => 'required',
                'email' => 'email',
            ]
        );

 

 

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

 

如果想自定义提示信息,就定义第三个参数

$input = $this->validate(
            $request,
            [
                'username' => 'required|between 2,6',
                'password' => 'required|confirmed',
                'password_confirmation' => 'required',
                'email' => 'required|email',
            ],
            [
                'username.required' => '账号不能为空',
                'username.between' => '账号须在2-6个字符之间',
                'password.required' => '密码不能为空',
                'password.confirm' => '两次密码不一致',
                'password_confirmation.required' => '确认密码不能为空',
                'email.required' => 'email不能为空',
                'email.email' => 'email格式不正确',
            ]
        );

2、独立方式验证表单

 使用场景:如果你不想在请求上使用 validate 方法,并且想跳转,你可以通过 Validator facade 手动创建一个验证器示例。

     用 Validator facade 上的 make 方法创建一个验证器示例:

$validator = Validator::make(
         $request->all(),
           [
               'username' => 'required|between:2,6',
               'password' => 'required|confirmed',
               'password_confirmation' => 'required',
               'email' => 'required|email',
           ],
           [
               'username.required' => '账号不能为空',
               'username.between' => '账号须在2-6个字符之间',
               'password.required' => '密码不能为空',
               'password.confirm' => '两次密码不一致',
               'password_confirmation.required' => '确认密码不能为空',
               'email.required' => 'email不能为空',
               'email.email' => 'email格式不正确',
           ]
       );
        if ($validator->fails()) {
            return redirect(route('user.add'))->withErrors($validator);
        }

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel提供了强大的表单验证工具,可以轻松地实现表单验证。 以下是一些基本的步骤: 1. 在控制器中创建一个验证器 使用以下命令创建一个验证器类: ``` php artisan make:request MyFormRequest ``` 这将创建一个名为`MyFormRequest`的类,用于验证表单。 2. 在验证器类中定义规则 在`MyFormRequest`类中,您可以使用`rules()`方法定义表单字段的验证规则。例如: ``` public function rules() { return [ 'name' => 'required|max:255', 'email' => 'required|email|unique:users|max:255', 'password' => 'required|confirmed|min:6', ]; } ``` 这个例子中,`name`字段是必需的,并且不能超过255个字符。`email`字段也是必需的,并且必须是一个有效的电子邮件地址,并且必须是唯一的。`password`字段必须与`password_confirmation`字段匹配,并且必须至少包含6个字符。 3. 在控制器中使用验证器 在控制器的方法中,您可以使用`MyFormRequest`类来验证表单数据。例如: ``` public function store(MyFormRequest $request) { // 如果验证失败,将自动重定向到之前的页面 // 并且错误消息将可用于 $errors 变量 $validatedData = $request->validated(); // 保存数据... } ``` 如果表单数据无效,Laravel将自动将用户重定向到之前的页面,并提供错误消息。 4. 显示错误消息 在视图中,您可以使用`$errors`变量来访问错误消息。例如: ``` @if ($errors->any()) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif ``` 这将在页面上显示所有验证错误消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值