创建一个接受两个输入参数的自定义验证规则

时间:2013-09-06 08:15:23

标签: php validation laravel laravel-4

我已经创建了一个接受一个输入参数的自定义验证规则。

Validator::extend('dns', function($attribute, $host, $parameters)
{
    return ($host !== gethostbyname($host));
});

规则

public static $rules = array(
    'nameserver'    => 'dns'
);

我在 global.php 文件中创建了一个名为 validators.php include 的新文件,以便成为全局文件。< / p>

我想传递两个输入参数,以便进行一些相互比较的检查。 我怎么能成功呢?

1 个答案:

答案 0 :(得分:1)

发送额外参数,例如:

public static $rules = array(
    'nameserver'    => 'dns:foobar'
);

并通过以下方式访问:

$parameters[0]

在关闭。

[编辑] 一种使用输入为验证器规则设定种子的方法:

// model
static $rules = array(
     'valOne' => 'required|custom:%s'
    ,'valTwo' => 'required'
);

// controller
$inputValues = Input::only(array(
     'valOne'
    ,'valTwo'
));

$rules = MyModel::$rules;

$rules['valOne'] = sprintf($rules['valOne'], Input::get('valTwo'));

$validator = Validator::make($inputValues, $rules);