我有两个用于邮政编码主字段和子字段的字段。
<input type="text" name="postal01">
<input type="text" name="postal02">
我想验证两个字段的数字和大小。 我想做的是将一个字段的验证错误显示为postal_cd,而不是每个字段错误。
我曾在扩展FormRequest的请求类中尝试过。
class MemberRequest extends FormRequest
{
public function all($keys = null)
{
$result = parent::all($keys);
if($this->filled('postal01') && $this->filled('postal02')) {
$results['postal_code'] = $this->input('postal01') . $this->input('postal02');
}
return $result;
}
但是它没有按我预期的那样工作。
该如何处理?
答案 0 :(得分:1)
您可以使用验证钩之后。将以下内容添加到您的表单请求中:
/**
* Configure the validator instance.
*
* @param \Illuminate\Validation\Validator $validator
* @return void
*/
public function withValidator($validator)
{
$validator->after(function ($validator) {
if($validator->errors()->has('postal01') || $validator->errors()->has('postal02')) {
$validator->errors()->add('postal_cd', 'Please enter a postal code');
}
});
}
...然后将其显示在刀片上:
{{ $errors->first('postal_cd') }}
答案 1 :(得分:0)
那是我的错字。
class MemberRequest extends FormRequest
{
public function all($keys = null)
{
$result = parent::all($keys);
if($this->filled('postal01') && $this->filled('postal02')) {
$result['postal_code'] = $this->input('postal01') . $this->input('postal02');
// $results['postal_code'] = $this->input('postal01') . $this->input('postal02');
}
return $result;
}
返回值应该是$ result。但这是拼写错误$ results ['postal_code']。 可以。