Laravel - “其他”占位符不接受验证消息中的友好名称

时间:2012-12-06 07:59:03

标签: validation placeholder laravel

在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",

并在验证器库中添加了替换占位符函数,以替换:其他占位符

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

我的字段名称类似于“min_area”,“max_area”,因此我不想在验证消息中使用此字段名称,因此我在语言文件中为这些字段添加了友好名称。但是“:其他”占位符没有采用验证语言文件中指定的友好名称。它只能用于“:attribute”占位符吗?

1 个答案:

答案 0 :(得分: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()