【问题标题】:Custom Validate Phone numbers in Laravel 4.2Laravel 4.2 中的自定义验证电话号码
【发布时间】:2015-05-29 08:12:54
【问题描述】:

我想使用 Laravel 4.2 中的自定义验证类来验证电话号码。

这是我的代码:

class PhoneValidationRule extends \Illuminate\Validation\Validator {

     public function validatePhone($attribute, $value, $parameters)
     {
        return preg_match("/^\+\d[0-9]{11}", $value);
     }

}

// Register your custom validation rule

Validator::resolver(function($translator, $data, $rules, $messages)
{
    return new PhoneValidationRule($translator, $data, $rules, $messages);
});

我想接受国际格式的电话号码,后跟 11 位数字(肯尼亚的所有手机都有 12 位数字,例如 +254721***661)。

我已经使用这个useful tool 来验证 preg_match 这个正则表达式。

然后我继续并以这种方式在app/start/global.php 自动加载类

ClassLoader::addDirectories(array(

    app_path().'/commands',
    app_path().'/controllers',
    app_path().'/models',
    app_path().'/database/seeds',
    app_path().'/PhoneValidator.php',

));

我的问题是,我将如何使用新规则来验证输入?

【问题讨论】:

    标签: php regex validation laravel laravel-4


    【解决方案1】:

    您可以通过

    调用您的电话验证规则
    'phone_number' => 'phone',
    

    Validator::make(Input::all(),['phone_number' => 'phone'])

    移动

    //Register your custom validation rule
    Validator::resolver(function ($translator, $data, $rules, $messages) {
       return new PhoneValidationRule($translator, $data, $rules, $messages);
    });
    

    app\start\global.php

    【讨论】:

    • 思路很简单,把你自定义的validate方法名改为snake case。
    • 我收到错误消息 BadMethodCallException 方法 [validatePhone] 不存在。
    • 如果有帮助,请尝试 comporser dumpautoload,我发现您的课程名为 PhoneValidatorRules 但您的文件是 PhoneValidator.php
    • 我已经添加了它并做了 composer dump-autoload。相同的错误信息
    • 好的,1 个问题,您是否将 Validator::resolver(function($translator, $data, $rules, $messages) { return new PhoneValidationRule($translator, $data, $rules, $messages); }); 放入您的 PhoneValidationRule 类?请将其粘贴到您的 app\start\global php 文件中,否则您将永远不会注册您的自定义验证
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2021-10-03
    相关资源
    最近更新 更多