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

Laravel Validator:如何在多列数据库中检查现有规则

Laravel Validator是Laravel框架中的一个验证器组件,用于验证用户输入的数据是否符合指定的规则。在多列数据库中检查现有规则时,可以通过自定义验证规则来实现。

首先,需要在Laravel的验证器中定义一个自定义规则。可以在app文件夹下的Providers目录中创建一个自定义验证器提供者,例如CustomValidatorProvider.php。在该文件中,可以使用Validator类的extend方法来定义自定义规则,如下所示:

代码语言:txt
复制
<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Validator;

class CustomValidatorProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Validator::extend('custom_rule', function ($attribute, $value, $parameters, $validator) {
            // 在这里编写自定义规则的验证逻辑
            // 可以通过$attribute获取当前验证的字段名
            // 可以通过$value获取当前字段的值
            // 可以通过$parameters获取传递给规则的参数
            // 可以通过$validator获取当前验证器实例

            // 返回true表示验证通过,返回false表示验证失败
            return true;
        });
    }
}

接下来,需要将自定义验证器提供者注册到Laravel的服务容器中。可以在config文件夹下的app.php文件中的providers数组中添加自定义验证器提供者的类名,如下所示:

代码语言:txt
复制
'providers' => [
    // 其他服务提供者...
    App\Providers\CustomValidatorProvider::class,
],

注册完成后,就可以在验证规则中使用自定义规则了。假设有一个数据库表名为users,包含两个列名为column1和column2,可以使用Laravel的验证器来验证这两个列的值是否符合自定义规则。可以在控制器或表单请求类中使用Validator类的make方法来创建验证器实例,并指定要验证的数据和验证规则,如下所示:

代码语言:txt
复制
use Illuminate\Support\Facades\Validator;

$validator = Validator::make($request->all(), [
    'column1' => 'custom_rule',
    'column2' => 'custom_rule',
]);

在上述代码中,'custom_rule'即为自定义规则的名称,可以根据实际需求进行修改。当验证器执行验证时,会自动调用自定义规则中定义的验证逻辑进行验证。

至于推荐的腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,无法给出具体的推荐。但腾讯云作为一家知名的云计算服务提供商,提供了丰富的云计算产品和解决方案,可以根据实际需求选择适合的产品进行使用。

总结:Laravel Validator可以通过自定义验证规则来在多列数据库中检查现有规则。通过创建自定义验证器提供者,定义自定义规则的验证逻辑,并将自定义验证器提供者注册到Laravel的服务容器中,就可以在验证规则中使用自定义规则进行验证。

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

相关·内容

Laravel Validation 表单验证(二、验证表单请求)

他们会自动被 Laravel 提供的 [服务容器] 自动解析。 所以,验证规则是如何运行的呢?你所需要做的就是在控制器方法类型提示传入的请求。...unique:table,column,except,idColumn 验证字段在给定的数据库必须是唯一的。 指定自定义列名: column 选项可用于指定相应数据库的字段。...上面的例子,将 unique:users 设置为验证规则,等于使用默认数据库连接来查询数据库。...: Rule::unique('users')->ignore($user->id, 'user_id') 默认情况下, unique 规则检查与要验证字段名称相匹配的的唯一性。...Laravel 会将新的规则存放在 app/Rules 目录: php artisan make:rule Uppercase 一旦创建了规则,我们就可以定义它的行为。

29.1K10

3分钟短文:十年窖藏,Laravel告诉你表单验证的“正确姿势”

引言 上一章我讲到了使用FormBuilder让后端开发者快速构建前端表单页面,而为了示例, 直接在store方法内把表单数据一股脑存到了数据库。 这!很!危!险!...重要的是那些验证规则,我来逐一为你解读。验证规则内使用的都是laravel内置写好了的规则,拿来即用。...为了检查是不是表单验证生效了,你可以直接在空白表单,点击“提交”按钮,输出内容大致如下: [pic] 红色警告部分,就是视图模板文件里 $errors 发挥作用了。...自定义错误提示信息 错误提示信息,是laravel内置验证规则给定的,如果你觉得提示信息不够详尽,不太满意,自己写也是没问题的。 我把上面的验证规则重写一下。...Validator就是这样设计的! 写在最后 本文初步介绍了laravel验证器内置规则的使用,以及如何将验证信息渲染到视图文件内。 并介绍了自定义验证错误提示信息的使用方法。

1.6K30

通过修改Laravel Auth使用salt和password进行认证用户详解

修改用户注册 首先,在laravel 里启用验证是用的artisan命令 php artisan make:auth 执行完命令后在routes文件(位置:app/Http/routes.php)会一条静态方法调用...方法里定义自己的每个输入字段的验证规则就可以 protected function validator(array $data) { return Validator::make($data, [ 'name...首先我们修改$user->getAuthPassword()把数据库中用户表的salt和password传递到validateCredentials 修改AppUser.php 添加如下代码 /**...自动管理timestamp */ public $timestamps = false; /** 覆盖Laravel默认的getAuthPassword方法, 返回用户的password和salt字段...第一步需要配置Laravel的email功能,此外还需要在数据库创建一个新表password_resets来存储用户的email和对应的token CREATE TABLE password_resets

2.9K30

Laravel5.2之Demo1——URL生成和存储

学习主题 该demo主要涉及如下几个知识点: 创建数据库并迁移数据表 创建表单,学习Laravel的blade模板引擎 创建名为Link的模型Model 保存数据进入数据库数据库获得...URL数据库,需要做几个步骤: (1)、首先创建一个数据库并定义该数据库Laravel的连接信息,Laravel框架为数据库连接提供了配置文件:/config/database.php,Laravel...:Laravel学习笔记之Validator。...首先使用验证方法Validator::make([], []),这个方法的第一个参数是取得的表单输入$input,第二个参数是验证规则$rules。...'是输入不能为空,是laravel自带的验证规则,'url'也是laravel自带的URL验证规则,就是格式得符合URL格式,'|'表示且的意思。

24K31

Laravel5.2之Validator

引言: Laravel提供了Validator模块,可解决表单提交验证等一些需求,并且可以在视图View显示错误验证信息,交互还是很友好的。注明:作者水平有限,有错误或建议请指正,轻拍。...(一)、post表单提交,并在视图中显示验证错误信息 1、先在routes.php写两个路由: Route::get('laravel/test/validator', 'PHPTestController...4、写显示验证错误信息视图 在laravellaravel会在每次请求把errors变量刷到session,和视图模板绑定,所以errors变量在视图模板可用,官方文档原话:"So, it is...; } 不填写输入直接提交表单,错误信息显示: 或者 (三)、定制一个表单请求类,把验证规则从控制抽取出来 有时候,把验证规则逻辑单独放在一个类里,使得控制器代码更加简约...1、在TestValidatorRequest类里写验证规则 authorize()方法主要用来设置用户权限,返回false时会返回一个403并且控制器代码不能执行,没有权限的用户不能提交表单。

13.2K31

laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例

先创建一个表单请求类: php artisan make:request TestRequest 然后在 rules() 和 messages() 方法里填写自已的验证规则和消息 <?...*/ public function authorize() { //注意,默认是false,改成true return true; } /** * 验证规则...return [ 'name.required' = '姓名必填', 'pwd.required' = '密码必填', ]; } } 注意,父类 FormRequest的...更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及...《php常见数据库操作技巧汇总》 希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

3.2K41

Laravel 5.0 之 表单验证类 (Form Requests)

Laravel 执行数据检查和验证的新手段....Form Requests 使表单验证不再让人头痛 Laravel 5.0 带来了 Form Requests, 这是一种特殊的类型, 用于在提交表单时进行数据的检查和验证....Laravel 会在解析 POST 路由之前自动把用户输入的信息传递给相应的表单请求, 因此我们的所有验证逻辑都可以移到独立于控制器和模型之外的 FormRequest 对象....提交表单, 你可以看到我们并没有往控制器添加任何一行验证逻辑, 但是验证规则已经生效了. 其它用例 如果对 "新增" 和 "编辑" 有不同的规则, 或者根据不同的输入进行不同的验证, 要怎么办呢?...// 可选: 通过新的 ->after() 方法来进行自定义 $validator->after(function() use ($validator)) { /

3.8K50

Laravel 多态关系的表单验证

相信大家使用 Laravel 开发应用的时候都会有评论模块吧,而且我们通常将该模块设计为多态关系(如果你对这个关系还不明白的话,请赶紧打开 Laravel 文档数据库关系章节复习一遍吧!)。...先看看我们的数据库结构: id commentable_id commentable_type body 那么遇到一个问题,如果写入数据呢?...那么我们现在介绍一种拓展验证规则的写法: 首先我们在 AppServiceProvider 中注册一个验证规则 poly_exists: Validator::extend('poly_exists',...是不是简单很多,而且这样验证规则还能重用在其它同类多态关系的地方哦。 这样就结束了么?没有! 我们上面的拓展验证规则的写法没有感觉有些粗暴么?是时候规范一下了。...$this->registerValidators(); } 在 boot 方法我们统一注册了 $validators里的验证规则,这样一来,添加删除一个规则都会科学清晰很多了。

2.1K40

框架不提供,动手造一个:Laravel表单验证自定义用法

引言 本文说一说Laravel内,如何使用自定义的验证规则。框架自带的规则,已然不够用了。我们从三个常见的验证需求出发,使用代码将其实现。 ?...为此,我们需要接受两个参数: 文件的磁盘路径,在配置的 filesystems.php 文件设置。 文件本身的目录。...然后,使用 storage facade 来执行检查,同时也会对用户输入执行一些初始过滤,以消除文件路径的任何转义符: public function passes($attribute, $value...值相等 这一条规则更像是“语法糖”。从技术上讲,你可以使用Laravel的 in 规则实现相同的功能,并提供单个值,而不是许多逗号分隔的选项。...然而,“in”这个词意味着多个值是有效的,而在特定的场景,可能只有一个值真正有用。在这种情况下,我认为使用“equals”在语义上更容易理解。 逻辑很简单。

75610

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

方法 以及 FormRequest 和 Validator。...这些错误也会被闪存到 Session ,以便这些错误都可以在页面显示出来。如果传入的请求是 AJAX,会向用户返回具有 422 状态代码和验证错误信息的 JSON 数据的 HTTP 响应。...= Validator::make($data,$rules,$message); //验证失败 if ($validator- fails()) { $this- error = $validator...自定义场景 protected $scene = [ 'add'= "title,content", 'edit'= ['id','title','content'], ]; } 如上所示,在这个类我们定义了验证规则...Laravel 验证器加上验证场景的实现的文章就介绍到这了,更多相关Laravel 验证器内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

2.8K10

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

很多 Web 框架都对此功能专门提供了工具集,Laravel 也不例外,而且这个工具集异常丰富,基本上涵盖了目前主流的所有验证规则,即使是一些非常个性化的验证,也可以基于 Laravel 验证类的扩展功能来自定义验证规则...接下来,我们就一起来看看如何在 Laravel 对表单请求进行验证。...作为一个灵活的框架,Laravel 提供了多种方式对表单请求进行验证,你可以在控制器通过 $this->validate() 方法验证用户请求,也可以通过单独的表单验证类定义验证规则,再将其注入到相应的控制器方法...第一个参数是用户请求实例,第二个参数是以数组形式定义的请求字段验证规则,关于所有字段验证规则及其说明你可以在验证规则文档查看,这里我们定义 title 字段是必填的,格式是字符串,且长度介于2~32之间...通过 Validator::make 方法进行验证 如果你使用过 Laravel 自带脚手架代码实现登录认证的话,你可能会留意到 RegisterController 对用户注册请求进行验证的时候,使用的是这样的验证代码

5.7K10

Laravel 5.5 LTS 正式发布!

在早期的 Laravel 版本,你可以在 App\Exceptions\Handler::render() 方法添加检查,并有条件地基于异常类型来返回响应。...请求的验证方法 在 Laravel 的过去版本,你可以将请求实例传递给控制器的 $this->validate() 方法: $this->validate(request(), [...]); 现在...自定义验证规则 自定义验证类,是旧版 Validator::extend(仍然可以使用)拓展自定义规则一个替代方式。之所以这样做,是因为这样做能够让规则逻辑更加一目了然。...但是,新版的 Laravel 允许你使用 Artisan命令 preset 删除所有前端脚手架,再从几个预设重新进行选择。...包自动发现 虽然 Laravel 包不会很难安装,但是有了包自动发现功能之后,你就可以不用在服务容器设置提供器或别名。甚至,你还可以禁用特定软件包的自动发现~ 人生苦短 我用 Laravel

2.5K30

3分钟短文:Laravel验证用户输入,不要把啥都存到系统里

post('recipes', 'RecipesController@store'); get请求,用于展示一个前端空白表单,给用户输入;post请求,用于更新配方数据,接收前端来的表单数据,需要写入数据库...其实, laravel提供的Validator对象,提供了众多的验证规则,验证方法,验证逻辑,只要我们进行手动实例化, 对传入的数据按规则进行整理,即可使用其特性。 为方便演示,我们在路由内直接构造。...>withErrors($validator)->withInput(); } // Recipe 有效,继续其他逻辑}); 验证规则是统一的,上面我们已经介绍了。...大家重点看一下,这里我们使用的是 Validator::make(); 方法实例化验证器,并传入验证规则。...这样单独多出来一层逻辑, 用于专门的验证,代码结构岂不是简洁的

76620

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

Laravel 验证器的强大之处不仅在于提供前面提到的多种请求验证方式,以及非常丰富的字段验证规则(不同规则可以组合形成新的验证规则),从 5.5 版本开始,还支持自定义字段验证规则。...通过匿名函数实现自定义规则 我们先演示下如何在控制器方法调用 $this->validate() 时自定义验证规则,以 title 字段为例,除了系统提供的字段验证规则之外,有时候我们还会禁止用户输入包含敏感词的字段...,在我们国家,这也是司空见惯的事情,那要如何实现这个 Laravel 办不到的事情呢,通过自定义验证规则: $this->validate($request, [ 'title' => [...如果检查到输入标题包含敏感词,则认为验证不通过,返回错误信息(我这里的主要目的是演示如何自定义验证规则,实际环境不要这样校验敏感词哈,效率太低)。...如果你使用的是 Validator::make 进行请求字段验证的话,实现方式完全一样,不再赘述,即使是在表单请求类 SubmitFormRequest ,也是一样的,把代码迁移过去就好了: public

2.8K20

laravel Model 执行事务的实现

1.官方手册是这样介绍的: 想要在一个数据库事务运行一连串操作,可以使用DB门面的transaction方法,如果事务闭包抛出异常,事务将会自动回滚。如果闭包执行成功,事务将会自动提交。...$url; $validator = Validator::make($data, array('call_id' = 'required', 'call_name' = 'required',...如果你认为自增ID不应该被事务化,那么其他事务不得不等待着,检查自增ID是被使用还是被回滚,这就导致阻塞 因为innodb的auto_increament的计数器记录的当前值是保存在存内 存的,并不是存在于磁盘上...server启动时,当我们需要去查询auto_increment计数值时,mysql便会自动执行:SELECT MAX(id) FROM 表名 FOR UPDATE;语句来获得当前auto_increment的最大值...,然后将这个值放到auto_increment计数器

1.4K31
领券