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

1/1) BadMethodCallException方法[验证器]不存在。在Laravel 5.6中

BadMethodCallException 方法 [验证器] 不存在,这个错误通常意味着你在 Laravel 5.6 中尝试调用一个不存在的方法。在 Laravel 中,验证器是通过 Validator facade 或者 Validator 门面来调用的。如果你遇到了这个错误,可能是因为以下几个原因:

基础概念

  • Laravel 验证器:Laravel 提供了一个强大的验证器,用于验证输入数据的有效性。它允许你定义一系列的规则,并根据这些规则来检查数据是否有效。

可能的原因

  1. 拼写错误:你可能在调用验证器方法时拼写错误。
  2. 版本不兼容:Laravel 5.6 可能没有你尝试调用的特定方法。
  3. 自定义验证器:如果你使用了自定义验证器,可能没有正确注册或者实现。

解决方法

检查拼写

确保你调用验证器的方法名拼写正确。例如,如果你想要创建一个新的验证器实例,应该这样写:

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

$validator = Validator::make($request->all(), [
    'field_name' => 'required|unique:table_name',
]);

检查版本兼容性

确认你使用的方法在 Laravel 5.6 中是存在的。你可以查看 Laravel 5.6 的官方文档来确认这一点。

自定义验证器

如果你使用了自定义验证器,确保它已经正确注册。例如,你可以在 AppServiceProviderboot 方法中注册自定义验证器:

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

public function boot()
{
    Validator::extend('custom_rule', function ($attribute, $value, $parameters, $validator) {
        // 自定义验证逻辑
        return $value === 'expected_value';
    });
}

示例代码

以下是一个完整的示例,展示了如何在 Laravel 5.6 中使用验证器:

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

public function store(Request $request)
{
    $validator = Validator::make($request->all(), [
        'name' => 'required|string|max:255',
        'email' => 'required|email|unique:users',
        'password' => 'required|min:6',
    ]);

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

    // 如果验证通过,继续处理数据
}

应用场景

  • 表单验证:在处理用户提交的表单数据时,使用验证器来确保数据的有效性。
  • API 请求验证:在构建 RESTful API 时,使用验证器来确保接收到的数据符合预期的格式和规则。

优势

  • 代码复用:验证规则可以在多个地方复用,减少重复代码。
  • 易于维护:将验证逻辑集中在一个地方,便于管理和维护。
  • 用户体验:及时反馈错误信息,提升用户体验。

通过以上步骤,你应该能够解决 BadMethodCallException 方法 [验证器] 不存在的问题。如果问题仍然存在,建议检查 Laravel 的日志文件以获取更多详细的错误信息。

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

相关·内容

Laravel 中简约而不简单的 Macroable 宏指令

这种替换在预编译时进行,称作宏展开。 我一开始接触宏是在大学上计算机基础课程时,老师讲office时说的。那时老师介绍宏操作时没太在意,只记得这一操作很强大,它能使日常工作变得更容易。...} } class Child { use \Illuminate\Support\Traits\Macroable; } // 增加了宏指令之后,我们就能调用 Child 对象中不存在的方法了...$this来调用Child的属性,是因为在__call方法中我们使用Closure::bindTo方法。...Laravel 中对类增加宏指令 Laravel中很多类都使用了宏这个trait Laravel 比如Illuminate\Filesystem\Filesystem::class,我们想为这个类增加一个方法...,测试我们新增加的方法 然后打开浏览器运行,你就会发现,我们的代码可以正常的运行了并输出结果了

27810

Laravel 参数验证的疑与惑

然后在AppServiceProvider中重新绑定新的验证器工厂创建类; 二,AppServiceProvider中通过resolver方法设置工厂类的resolver属性,接管验证器的实例化,例如:...1 通过extend方法扩展 //这是一个简单的参数比较的验证规则,Laravel5.8中提供,Laravel5.5中未提供 //验证规则如下: 'max_num'=>'gte:min', Validator...验证器在验证参数的过程中,如果找到匹配的验证规则,则直接进行验证。否则调用魔术方法__call查找扩展验证函数。扩展函数返回布尔值,返回true则表示验证通过,返回false表示验证失败。...message方法,用于提供验证失败的错误提示信息。 使用自定义验证类,相对于extend方法扩展有一个很大的bug就是无法在自定义类中获取到当期的验证器对象。...['min_num'=>'validateMinNum'] 方法1 通过自定义类实现 Laravel提供了ClosureValidationRule自定义验证类,用来添加回调函数的验证。

3.4K00
  • php之laravel学习常见错误2(连载中)

    下面是我们整理的php的laravel学习的常见的错误以及解决的办法,我还会持续更新,请关注 ---- ---- 错误1: 错误代码: Symfony \ Component \ Debug \ Exception...\ FatalThrowableError (E_ERROR) 错误原因: 表单提交没有添加“enctype="multipart/form-data"” 解决办法: 在表单添加“enctype="multipart...错误代码: Call to a member function isValid() on string 错误原因: 表单“enctype="multipart/form-data"”单词写错 解决办法: 在表单...function App\Http\Controllers\data() 错误原因: 找不到函数data 时间函数写错 解决办法: 把函数的data改成date ---- ---- 错误5: 错误代码: BadMethodCallException...错误原因: 方法[login]不存在。

    1K20

    Laravel5.2之Filesystem源码解析(下)

    S3中称为桶的意思,就是可以定义多个bucket,不同的bucket存各自的文件,互不干扰,在Laravel配置S3时得指定是哪个bucket,这里假设file.txt存储在laravel bucket...在Laravel中AppServiceProvider中使用Storage::extend(name, Closure callback)注册一个自定义的filesystem。...MountManager中也use PluggableTrait并定义了__call()方法,所以在MountManager中使用Plugin和Filesystem中一样。...Cache源码解析 最后一个好的技术就是Cache模块的设计,使用了Decorator Pattern,设计的比较巧妙,这样只有在需要这个decorator的时候再装载就行,就如同Laravel中的Middleware...总结:本文主要通过Laravel的Filesystem模块学习了\League\Flysystem的源码,并聊了该package的设计架构和设计技术,以后在使用中就能够知道它的内部流程,不至于黑箱使用。

    1.6K41

    【DB笔试面试381】设U1是SQL Server身份验证模式的数据库服务器登录账户,希望U1在该数据库服务器有系统管理员权限。

    Q 题目 在SQL Server 2000中,设U1是SQL Server身份验证模式的数据库服务器登录账户,现希望U1在该数据库服务器上具有系统管理员权限。...请补全下列语句: EXEC SP_ADDSRVROLEMEMBER 'U1','_____'; A 答案 答案:sysadmin 分析:SP_ADDSRVROLEMEMBER存储过程可以将登陆用户添加到固定服务器角色...添加之后,该登陆名就会得到与此固定服务器角色相关的权限。...Vm5PqNcDcITkOr9cQg6T7w About Me:小麦苗 ● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用 ● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

    53320

    Laravel 6.13.0 版本发布,允许对隐式属性验证消息进行格式化

    Laravel 开发团队本周发布了 v6.13.0 版本,支持对隐式验证属性错误消息进行格式化,并且新增了一个 ensureDirectoryExists() 文件系统方法。...下面我们一起来看看一些重要的新特性: 1、重要特性 1)允许格式化隐式属性验证消息 从 Laravel 6.13.0 开始,支持在验证器中为隐式属性配置自定义错误消息格式: // 将 "0.age must...= true); 该方法会在目录不存在时创建这个目录。...2、更新日志 1)新增特性 新增 --api 选项到 make:model 命令 新增 PendingResourceRegistration::shallow() 方法 允许使用闭包格式化隐式属性验证消息...广播时的频道名称问题 在验证之前替换星号 3)代码调整 在新的队列工作者循环中重置超时处理器 声明:本文翻译整理自 Laravel News。

    75720

    Laravel5.2之Validator

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

    13.3K31

    LaravelLumen 优化包 - 注解注入路由自动配置

    like:HotKeys => hot_keys 方法包含【.】的目录以【_】分隔。like:V1.0 => v1_0 方法包含驼峰以【-】分隔。...like:getListsO => get-list-o 控制器方法添加注解配置案例 具体案例, 模块根目录和控制器文件:app/Modules/Module/Hotkeys/V1.0/Controllers.../IndexController.php 方法:getList,注解arRouter getListO 路由:/m/module/hot-keys/v1_0/index/get-list-o /**...],自动剔除token中间件 N:NotAuth 无需授权,公开api,自动移除token中间件[如果存在] V:validate 请求验证,自动移除请求验证中间件[如果不存在] X:checkSign...] ] ]; laravel版本 需在Application可以注入configure方法 /** * 加载配置文件 * @param $name */ public function configure

    1.4K10

    Laravel使用gregwarcaptcha生成验证码

    laravel框架自身并不携带验证码类,我这里采用开源的gregwar/captcha,来做验证码,并判断是否可以登录。...安装扩展库 1、在 laravel 项目根目录下找到 composer.json 这个文件,添加 "gregwar/captcha": "1.*"  到composer.json这个文件中,如下面代码所示..."5.8.*", "laravel/tinker": "^1.0", "gregwar/captcha": "1.*" }, 2、然后打开命令行,找到项目的根目录...code='+Math.random(); } image.png 验证码获取界面 相关问题 乱码问题 这里有两个问题需要注意,照着下面的方法去直接输出验证码,你会发现验证码显示不出来,反而是一堆乱码...,防止出现验证码不能刷新或显示不出来的情况,但是并没有起作用,改用 ob_clean(); 去清除浏览器缓存。

    2.3K20

    3分钟短文:Laravel应用跟用户打交道,就从拿到他们的数据开始!

    laravel把用户的输入存储在 Input 对象内,而从逻辑上看,用户输入应该归属于请求项的,所以 Request 也继承了 Input 的方法和数据。...用法很简单,直接调用方法即可: if ($request->has('utm')) { // Do some work } 如果对于输入值键不存在,我们也可以为其设置一个默认值,这就是 input...laravel内获取数组可以使用点式方式读取,这是因为laravel解析的时候使用了助手类 Arr 的通用方法。...写在最后 本文几乎涵盖了用户输入input方法的最为常用的一些方法,我们只讲了怎么正常地获取用户数据,没有讲如何验证数据有效性。因为前端验证几乎形同虚设,最后能写到数据库的数据,还是要应用程序把关。...那就是验证器的工作了,验证器,我们放到后续章节再详细地讲。 Happy coding :-) 我是@程序员小助手,专注编程知识,圈子动态的IT领域原创作者

    1.5K00

    3分钟短文:Laravel应用跟用户打交道,就从拿到他们的数据开始!

    laravel把用户的输入存储在 Input 对象内,而从逻辑上看,用户输入应该归属于请求项的,所以 Request 也继承了 Input 的方法和数据。...用法很简单,直接调用方法即可: if ($request->has('utm')) { // Do some work } 如果对于输入值键不存在,我们也可以为其设置一个默认值,这就是 input...laravel内获取数组可以使用点式方式读取,这是因为laravel解析的时候使用了助手类 Arr 的通用方法。...写在最后 本文几乎涵盖了用户输入input方法的最为常用的一些方法,我们只讲了怎么正常地获取用户数据,没有讲如何验证数据有效性。因为前端验证几乎形同虚设,最后能写到数据库的数据,还是要应用程序把关。...那就是验证器的工作了,验证器,我们放到后续章节再详细地讲。 Happy coding :-) 我是@程序员小助手,专注编程知识,圈子动态的IT领域原创作者

    1.4K10

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

    ---- 问题描述: 1、渲染模版方式的不同 在Laravel框架里,使用return view()来渲染模版;而ThinkPHP里则使用了$this->display()的方式渲染模版。...我们只需要在不同的工作地点配置好.env文件就不避再进行配置,因为无论是git还是svn,“.env是不会随着文件一起提交到服务器的”。...6、Laravel里内置了大量的方法供开发者使用 在实际应用中更接近于”让对象完成一切”的开发思想,比如在后台表单验证的时候,Laravel内置了大量的验证方法。...例如对用户名的验证:我们可以使用validate方法里'username'=>'required'(不能为空)|alpha_dash(必须数字字母下划线)|between:6,18(在多少位数之间);还内置了例如...我想这可能是它牢牢占据NO.1的一大亮点,在ThinkPHP中则需要我们借助SQL语句或者建表工具去逐步完善数据。 8.1、首先我们需要建立模型:我用的是gitbash。

    5.7K20

    Laravel源码笔记(二)路由

    整个路由服务的框架大致如下: image.png 在两个服务周期中都扮演者重要角色的Router路由器,是在laravel初始化的过程中由RoutingServiceProvider注册到...二、路由加载与规则解析         定义一条最基本的路由规则的语法很简单,调用Facade门面Route类的某个静态方法即可(本质上是调用了已经注册在服务容器中的路由器router实例api,不清楚...实际上,所有 laravel 路由都定义在位于 routes 目录下的路由文件中,这些文件内的路由被laravel视为一个大的路由组,在RouteService启动的过程中通过Route门面加载出来(所以路由配置文件不需要声明对...的dispatch()方法中进行的,过程大致为: 路由器先找到匹配的路由并与请求绑定; 向系统发出一个RouteMatched事件; 让请求走一遍路由规则声明的中间件; 调用路由绑定的控制器或者闭包函数返回...HostValidator, ]; }         每个路由最终都分别调用了UrlValidator、MethodValidator、SchemaValidaor、HostValidator四个验证器对请求的参数进行了校验

    7.5K40
    领券