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


Create a custom Validation rule that accepts two input parameters

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

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

规则

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

我创建了一个名为 validators 的新文件.php并将其包含在全局.php文件中,以便成为全局文件。

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

发送额外的参数,例如:

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);