在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”占位符吗?
答案 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()
。