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->attribute()
。
【讨论】:
以上是关于Laravel - “其他”占位符不接受验证消息中的友好名称的主要内容,如果未能解决你的问题,请参考以下文章