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

Posted

技术标签:

【中文标题】Laravel - “其他”占位符不接受验证消息中的友好名称【英文标题】:Laravel - "Other" place holder not accepting friendly names in validation message 【发布时间】:2012-11-24 05:23:03 【问题描述】:

在 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" 占位符不采用验证语言文件中指定的友好名称。是否只能用于“:attribute”占位符?

【问题讨论】:

【参考方案1】:

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

你可以用你的替换器来运行它。

protected function replace_less_than($message, $attribute, $rule, $parameters)

    return str_replace(':other', $this->attribute($parameters[0]), $message);

注意$this-&gt;attribute()

【讨论】:

以上是关于Laravel - “其他”占位符不接受验证消息中的友好名称的主要内容,如果未能解决你的问题,请参考以下文章

文本区域占位符不起作用

IE8 的 Javascript 占位符不起作用 [重复]

Spring占位符不解析JavaConfig中的属性

select2 MULTIPLE 占位符不起作用

jQuery Select2 占位符不起作用

webapi调用nodejs到postgres,多个占位符不起作用