首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Laravel自定义验证中获取其他字段值

在Laravel中,可以通过自定义验证规则来获取其他字段的值。以下是实现此功能的步骤:

  1. 创建自定义验证规则类:首先,创建一个自定义验证规则类,可以将其放置在Laravel应用程序的"app/Rules"目录下。可以使用以下命令来生成一个自定义验证规则类:
  2. 创建自定义验证规则类:首先,创建一个自定义验证规则类,可以将其放置在Laravel应用程序的"app/Rules"目录下。可以使用以下命令来生成一个自定义验证规则类:
  3. 这将在"app/Rules"目录下生成一个名为"CustomValidationRule"的类文件。
  4. 编写验证逻辑:在自定义验证规则类中,可以通过实现"passes"方法来编写验证逻辑。在该方法中,可以通过参数访问其他字段的值。以下是一个示例:
  5. 编写验证逻辑:在自定义验证规则类中,可以通过实现"passes"方法来编写验证逻辑。在该方法中,可以通过参数访问其他字段的值。以下是一个示例:
  6. 在上述示例中,通过request()->input('other_field')可以获取名为"other_field"的字段值。
  7. 使用自定义验证规则:在需要进行验证的地方,可以使用自定义验证规则。以下是一个示例:
  8. 使用自定义验证规则:在需要进行验证的地方,可以使用自定义验证规则。以下是一个示例:
  9. 在上述示例中,"field1"字段将使用自定义验证规则进行验证。在自定义验证规则中,可以通过request()->input('field2')来获取"field2"字段的值。

这样,就可以在Laravel自定义验证中获取其他字段的值了。请注意,上述示例中的"CustomValidationRule"仅作为示例,实际的自定义验证规则可能需要根据具体需求进行适当修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel 参数验证的疑与惑

message方法,用于提供验证失败的错误提示信息。 使用自定义验证类,相对于extend方法扩展有一个很大的bug就是无法在自定义获取到当期的验证器对象。...从而导致在当前扩展的验证规则,只能过获取到需要验证的数据,而获取不到其他字段数据,无法进行联合字段验证。像上面比较两个字段的大小的验证规则就无法实现。...例如,一个验证规则如下,表示用当期类的validateMinNum对参数进行验证,那么,这样的一个功能,如何在Laravel实现呢。...验证规则的扩展有两种方式,一种是通过extend方式实现。extend方式对验证器的影响是全局的,整个运行进程有效。可以获取验证器本身,因此可以做多个字段关系的验证;另一种是通过自定义规则类实现。...自定义规则了只对使用自定义规则类的验证有效。但是自定义规则类本身无法直接获取验证器本身,不能够做多个字段关系的验证。如果需要实现,则需要使用自定义验证器,将验证器传入到验证规则中去。

3.3K00

关于Laravel参数验证的一些疑与惑

message方法,用于提供验证失败的错误提示信息。 使用自定义验证类,相对于extend方法扩展有一个很大的bug就是无法在自定义获取到当期的验证器对象。...从而导致在当前扩展的验证规则,只能过获取到需要验证的数据,而获取不到其他字段数据,无法进行联合字段验证。像上面比较两个字段的大小的验证规则就无法实现。...例如,一个验证规则如下,表示用当期类的validateMinNum对参数进行验证,那么,这样的一个功能,如何在Laravel实现呢。...extend方式对验证器的影响是全局的,整个运行进程有效。可以获取验证器本身,因此可以做多个字段关系的验证;另一种是通过自定义规则类实现。自定义规则了只对使用自定义规则类的验证有效。...但是自定义规则类本身无法直接获取验证器本身,不能够做多个字段关系的验证。如果需要实现,则需要使用自定义验证器,将验证器传入到验证规则中去。

6.6K31

何在MySQL获取的某个字段为最大和倒数第二条的整条数据?

在MySQL,我们经常需要操作数据库的数据。有时我们需要获取的倒数第二个记录。这个需求看似简单,但是如果不知道正确的SQL查询语句,可能会浪费很多时间。...在本篇文章,我们将探讨如何使用MySQL查询获取的倒数第二个记录。 一、查询倒数第二个记录 MySQL中有多种方式来查询倒数第二个记录,下面我们将介绍三种使用最广泛的方法。...ID(或者其他唯一)。...------+-----+ | id | name | age | +----+------+-----+ | 4 | Lily | 24 | +----+------+-----+ 三、查询某个字段为最大的整条数据...SELECT * FROM commodity ORDER BY price ASC LIMIT 1; 结论 在MySQL获取的倒数第二条记录有多种方法。

73510

通过 Laravel 表单请求类实现字段验证和错误提示

在上一篇教程,我们已经演示了如何在控制器方法对表单请求字段进行验证,并且提到如果请求字段很多很复杂,都写到控制器方法里面会导致控制器臃肿,从单一职责原则来说需要将表单请求验证拆分出去,然后通过类型提示的方式注入到控制器方法...$request) { return response('表单验证通过'); } Laravel 底层在解析这个控制器方法的参数时,如果发现这个请求是一个表单请求类,则会自动执行其中定义的字段验证规则对请求字段进行验证...由于该表单请求类也是 Illuminate\Http\Request 的子类,所以后续获取请求字段也可以通过 $request 来获取,将表单请求验证和请求实例参数合二为一,非常方便。...我们测试下表单请求,会发现和在控制器方法通过 $this->validate() 验证字段的结果一样: ? 这样一来,以后我们就可以在表单请求类维护字段验证逻辑了,完成了请求验证和控制器的解耦。...# 验证 books[author] 'books.*.author' => 'required|max:10', # 验证 books[test][author] 更多请求验证字段规则,请查看 Laravel

3.8K30

php之laravel项目中使用腾讯云短信

模板创建成果后,会有模板信息列表:模板ID、类型、申请时间、模板名称、内容 如何在laravel配置sdk ①腾讯云短信包在Github的下载地址:https://github.com/qcloudsms.../qcloudsms_php ②下载好后,将sdk包(qcloudsms_php-master) 放到laravel自定义建立的Libs文件夹下,具体路径:laravel下 \app\Libs\qcloudsms_php-master...表名: sms_app 应用表字段类型默认说明idint(11) merch_idint(11) 商户ID :0代表平台namevarchar(32) 应用名字appidvarchar(32)...1已验证 表名: sms_sign 应用表字段类型默认说明idint(11) merch_idint(11) 商户ID :0代表平台nameVarchar(32) 签名名称signidVarchar...create_wayInt(11) 创建方式:0手动 1控制台 表名: sms_verify验证码表字段类型默认说明idint(11) merch_idint(11) 商户ID :0代表平台sms_send_idInt

3.5K00

laravel与thinkphp之间的区别与优缺点

3、Laravel框架提供了大量的闭包 作为菜鸟的我目前只使用了use方法,即如何在函数内部使用外层变量。...4、post传中注意点不同 在Laravel框架里,由于其考虑到了跨站攻击,所以如果使用form表单以post方式进行传时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound...6、Laravel里内置了大量的方法供开发者使用 在实际应用更接近于”让对象完成一切”的开发思想,比如在后台表单验证的时候,Laravel内置了大量的验证方法。...email;same:字段名;diff:字段名等大量的方法极大的提高了开发速度。...Session变量:Session::get(‘name'); 10.2、LaravelSession的常用方法: $request->session()->get(‘key');//获取session

5.5K20

Laravel和Thinkphp有什么区别,哪个框架好用

3、Laravel框架提供了大量的闭包 作为菜鸟的我目前只使用了use方法,即如何在函数内部使用外层变量。...4、post传中注意点不同 在Laravel框架里,由于其考虑到了跨站攻击,所以如果使用form表单以post方式进行传时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound...6、Laravel里内置了大量的方法供开发者使用 在实际应用更接近于”让对象完成一切”的开发思想,比如在后台表单验证的时候,Laravel内置了大量的验证方法。...email;same:字段名;diff:字段名等大量的方法极大的提高了开发速度。...Session变量:Session::get(‘name’); 10.2、LaravelSession的常用方法: $request->session()->get(‘key’);//获取session

5.9K20

通过 Request 对象实例获取用户请求数据

而作为最流行的 PHP 框架,Laravel 自然也是为处理用户请求提供了丰富的工具集,从收集、验证、到过滤、编排,可谓是一应俱全,接下来,我们将通过三四篇教程的篇幅来为你详细介绍如何在 Laravel...获取指定请求字段 上面我们已经给出了获取指定字段的一个方法 get,该方法只能获取通过 GET 请求传递的参数,同理,如果是 POST 请求的话,我们可以通过 post 方法获取对应字段,此次之外...,我们还可以通过 input 方法,该方法可以从所有请求方式获取给定字段,所以更加通用: $id = $request->input('id'); $name = $request->input...'); 获取数组输入字段 有的时候,我们在表单传递给后端的可能是一个数组,比如一些复选框选中项,这些表单输入框的 name 通常是 name[], books[],这个时候传递到后端的 books...获取 JSON 输入字段 随着基于 JavaScript 的单页面应用(SPA)应用的流行,除了传统表单请求提交的 POST/GET 数据之外,JSON 格式的请求数据也越来越常见,Laravel 支持对

19.7K30

通过匿名函数和验证规则类自定义 Laravel 字段验证规则

Laravel 验证器的强大之处不仅在于提供前面提到的多种请求验证方式,以及非常丰富的字段验证规则(不同规则可以组合形成新的验证规则),从 5.5 版本开始,还支持自定义字段验证规则。...通过匿名函数实现自定义规则 我们先演示下如何在控制器方法调用 $this->validate() 时自定义验证规则,以 title 字段为例,除了系统提供的字段验证规则之外,有时候我们还会禁止用户输入包含敏感词的字段...,在我们国家,这也是司空见惯的事情,那要如何实现这个 Laravel 办不到的事情呢,通过自定义验证规则: $this->validate($request, [ 'title' => [...,然后将自定义规则以匿名函数的方式添加到数组最后,如上面的代码所示,该匿名函数第一个参数是字段名,第二个参数是字段,第三个参数是校验失败用于返回的函数名。..., $value) { return strpos($value, '敏感词') === false; } 如果输入包含敏感词,则认为验证失败,然后在 message 方法修改验证失败的错误消息

2.8K20

Laravel jwt 多表(多用户端)验证隔离的实现

会引发这个问题的原因是 laravel 的 jwt token 默认只会存储数据表的主键的,并没有区分是那个表的。所以只要 token 里携带的 ID 在你的用户表中都存在,就会导致越权验证。..., "nbf": 1558668215, "jti": "XakIDuG7K0jeWGDi", "sub": 1 } 携带数据的是 sub 字段其他字段是 jwt 的验证字段。...我们只看到 sub 的为 1,并没有说明是那个表或是哪个验证器的。...解决办法 想要解决用户越权的问题,我们只要在 token 上带上我们的自定义字段,用来区分是哪个表或哪个验证器生成的,然后再编写自己的中间件验证我们的自定义字段是否符合我们的预期。...jwt 声明的标识,其实就是要我们返回标识用户表的主键字段名称,这里是返回的是主键 ‘id’, getJWTCustomClaims:返回包含要添加到 jwt 声明自定义键值对数组,这里返回空数组

2K31

Laravel 控制器中进行表单请求字段验证

很多 Web 框架都对此功能专门提供了工具集,Laravel 也不例外,而且这个工具集异常丰富,基本上涵盖了目前主流的所有验证规则,即使是一些非常个性化的验证,也可以基于 Laravel 验证类的扩展功能来自定义验证规则...接下来,我们就一起来看看如何在 Laravel 对表单请求进行验证。...在表单页面显示错误信息 我们需要修改下 form.blade.php 的表单代码,在 Blade 模板可以通过 $errors 获取验证错误信息,通过 old() 辅助函数可以获取用户上次输入数据:...Ajax 请求错误信息提示 接下来我们来看 Ajax 请求验证错误信息的获取和提示,我们以上一篇教程的文件上传为例。...对于大量请求字段,或者复杂的请求验证,都写到控制器方法显然会导致控制器的代码变得臃肿,可维护性也比较差,所以我们下一篇教程将讨论如何将验证代码移出控制器这一话题,并且根据项目需求灵活实现自定义验证规则

5.8K10

为你的 Laravel 验证器加上多验证场景的实现

前言 在我们使用 laravel 框架的验证器,有的时候需要对表单等进行数据验证,当然 laravel 也为我们提供了 Illuminate\Http\Request 对象提供的 validate...$scene = explode(',', $scene); } //将场景需要验证字段填充入only $this- only = $scene; return true; } // 获取错误信息...= "title,content", 'edit'= ['id','title','content'], ]; } 如上所示,在这个类我们定义了验证规则 rule,自定义验证信息 message,以及验证场景...场景验证 我们需要提前在验证定义好验证场景 如下,支持使用字符串或数组,使用字符串时,要验证字段需用 , 隔开 //自定义场景 protected $scene = [ 'add'= "title...,又减少了 FormRequest 文件过多,还可以自定义 json 数据是不是方便多了呢, 参考文档 laravel 表单验证 :表单验证Laravel 5.5 中文文档》 thinkphp

2.8K10

Laravel 表单方法伪造与 CSRF 攻击防护

答案是通过表单方法伪造,下面我们就来介绍如何在 Laravel 中进行表单方法伪造。...表单请求方法伪造 要告知 Laravel 当前提交的表单使用的是 GET/POST 之外的其他请求方式,需要在表单添加一个名为 _method 的隐藏字段字段是「PUT」、「DELETE」或 「PATCH...Laravel 在处理提交表单请求时,会将字段作为请求方式匹配对应的路由。...避免跨站请求伪造攻击的措施就是对写入操作采用非 GET 方式请求,同时在请求数据添加校验 Token 字段Laravel 也是这么做的,这个 Token 会在渲染表单页面时通过 Session 生成...在 Laravel ,和表单方法伪造一样,支持通过 HTML 表单隐藏字段传递这个: Route::get('task/{id}/delete', function ($id) { return

8.7K40

Laravel 7发行说明

引入 Laravel 框架或其组件时,应始终使用版本约束, ^7.0,因为 Laravel 的主要版本确实包含非兼容性更改。我们会努力确保您可以在一天或更短的时间内更新到最新版本。...get 方法负责将从数据库获取的原始数据转换成对应的类型,而 set 方法则是将数据转换成对应的数据库类型以便存入数据库。...自定义键名 有时你可能希望使用 id 以外的字段来解析 Eloquent 模型。...有时候需要在查询执行过程对特定属性进行类型转换,例如需要从数据库表获取数据的时候。...为此,Laravel 7提供了 stub:publish 命令来发布最常见的自定义桩代码: php artisan stub:publish 发布的桩代码将位于应用程序根目录的 stubs 目录

9K20

laravel框架学习记录之表单操作详解

/js/app.js')}}" </script 3、laravel实现分页 在laravel可以很便捷地实现分页数据显示,第一步是在controller中分页取出数据库数据并传递给页面: return...laravel提供了validate方法来用于验证用户提交的表单是否符合要求,例如在页面通过post提交了学生表单form后,在controller对其先进行验证,如果正确则存入数据库,否则返回到上一页面并抛出一个异常...'Student.sex'= '性别' ]); //存入学生数据 $stu=$request- input('Student'); Student::create($stu); validate()第一个数组定义字段验证规则...是你所需要的验证规则,中间用”|”隔开,详细的规则可以看文档 validate()第二个数组自定义验证出错后的提示信息,”:attribute”为占位符 validate()第三个数组自定义每个字段的提示名字...error) <li {{$error}}</li @endforeach </ul </div @endif 也可以$errors- first()获取指定字段验证错误

12.6K30

3分钟短文 | Laravel 内3种数据校验的写法,你喜欢哪一个?

这就是本文的重点,说一说laravel输入请求的校验。 学习时间 假设请求Request内有一个 names 字段,传送的是一个数组,对于数组,我们应该如何校验呢?...其实需要两步,第一步校验names字段本身必须是数组,其次校验数组的元素规则。...在第一个规则下,验证了names字段必须为array类型,且长度至少为3。 接着使用星号匹配数组内元素,要求都是string字符串,且不得重复 distinct,且每个字符串长度最小为3。..."required|string|distinct|min:3", ]); 上面两种方式校验之后,都可以使用 $validator->fails() 方法判断是否通过,如果 true 就是有错误,可以获取...自定义验证 laravel内你也可以自定义验证规则,使用 artisan 命令新建一个验证类: php artisan make:request SomeRequest

1.2K20

如何扩展Laravel Auth来满足项目需求

想了解实现细节的可以回看下面两篇文章 Laravel源码解析之用户认证系统(一) Laravel源码解析之用户认证系统(二) 在介绍用户认证系统基础的时候提到过Laravel自带的注册和登录验证用户密码时都是去验证采用...bcypt加密存储的密码,但是很多已经存在的老系统中用户密码都是用盐加明文密码做哈希后存储的,如果想要在这种老系统应用Laravel开发项目的话那么我们就不能够再使用Laravel自带的登录和注册方法了...register_ip' => ip2long(request()->ip()), 'salt' => $salt ]); } 上面改完后注册用户后就能按照我们指定的方式来存储用户数据了,还有其他一些需要的与用户信息相关的字段也需要存储到用户表中去这里就不再赘述了...的 retriveBycredentials方法从用户表查询出用户数据,通过 validateCredentials方法来验证给定的用户认证数据与从用户表查询出来的用户数据是否吻合。...validateCredentials来实现我们自己系统的密码验证规则,由于用户提供器的其它方法不用改变沿用 EloquentUserProvider里的实现就可以,所以我们让自定义的用户提供器继承自

2.7K20
领券