0

在 Laravel 中,

我在我的项目中使用自定义验证来检查最小区域的值是否小于最大区域。刚刚在 Validator 库中创建了验证

public function validate_less_than($attribute, $value, $parameters)
{
            $other_value = $this->attributes[$parameters[0]];
            if(!empty($value) && !empty($other_value))
                return $value <= $other_value;
            else    
                return true;    
}

在语言文件中添加了“less_than”的验证消息。

'less_than'     =>  "The :attribute must be less than :other value",

并在验证器库中添加了替换占位符功能,以替换 :other 占位符

protected function replace_less_than($message, $attribute, $rule, $parameters)
    {
                return str_replace(':other', $parameters[0], $message);
    }

我的字段名称类似于“min_area”、“max_area”,因此我不希望在验证消息中使用此字段名称,因此我在语言文件中为这些字段添加了友好名称。但 ":other" 占位符不采用验证语言文件中指定的友好名称。只有“:属性”占位符才有可能吗?

4

1 回答 1

1

它在第 856 行(在当前版本 3.2.12 中)的 validator.php 中硬编码。

你可以用你的替代品来运行它。

protected function replace_less_than($message, $attribute, $rule, $parameters)
{
    return str_replace(':other', $this->attribute($parameters[0]), $message);
}

注意$this->attribute().

于 2012-12-06T14:05:04.757 回答