0

我想自定义我的 laravel 验证器。

截至目前,我有多个复选框

<input type="checkbox" name="prodRelatedID[]" value="1">
<input type="checkbox" name="prodRelatedID[]" value="5">
<input type="checkbox" name="prodRelatedID[]" value="189">

在我的Request.php文件中我有这个

public function rules()
{
    return [
        'prodTitle' => ['required', 'string', 'max:255'],
        'prodDesc' => ['required', 'string', 'max:255'],
        'attachment' => ['image','mimes:jpeg,png,jpg,gif,svg','max:2048'],
        'prodSize' => ['required','string','max:255'],
        'prodCategory' => ['required','string','max:255'],
        'prodPrice' =>  ['required','regex:/^\d*(\.\d{1,2})?$/'],
        'prodRelatedID' => ['required'],
        'prodRelatedID.*' => ['accepted'],
    ];
}

现在如何自定义错误消息,例如prodRelatedID

如果用户没有选中复选框,这将返回类似这样的内容

Please choose atleast 1 product related

4

2 回答 2

1

有两种方法可以做到这一点:

1 添加一组消息以匹配您的规则,并将其发送到 validate 方法

$messages = [
    'prodRelatedId.required' => 'Please choose at least 1 product related'
]

$request->validate($rules, $messages);

或者 2,我更喜欢更简洁的方法是编辑

resources\assets\lang\en\validation.php

并修改文件末尾的“attributes”键并在其中添加您的值,如下所示:

'attributes' => [
    'prodRelatedID' => 'product related'
]
于 2020-05-23T15:33:33.090 回答
1

如果您使用的是表单请求,那么您可以覆盖消息方法:

public function messages()
{
    return [
        'prodRelatedID.required' => 'Please choose at least 1 product related',
    ];
}
于 2020-05-23T15:29:06.263 回答