php - 带有 "sometimes"规则的 Laravel Validator 自定义消息

标签 php laravel laravel-7 laravel-validation

这是我的一段代码,用于验证表单输入:

public function saveData(Request $request){
    $form_data = $request->all();

    $validation_fields = [
        'first_name' => 'required',
        'last_name' => 'required',
        'cod_fisc' => 'sometimes|required|size:16',
        'p_iva' => 'sometimes|required|between:11,13'
    ];

    $errorMsgs = [
        'first_name.required' => 'Il campo Nome è obbligatorio.',
        'last_name.required' => 'Il campo Cognome/Ragione sociale è obbligatorio.',
        'cod_fisc.required' => 'Il campo Codice Fiscale deve contenere 16 caratteri',
        'p_iva.required' => 'Il campo Partita Iva deve contenere 11 o 13 caratteri',
    ];

    $validator = Validator::make($form_data, $validation_fields, $errorMsgs);

    ....
}

整个项目是为意大利人编写的,因此所有消息都必须使用意大利语。 一切正常,但绑定(bind)到“有时”规则的 cod_fiscp_iva 的两个规则以英文显示。我的自定义错误消息被忽略。

为什么?

最佳答案

在搜索您的问题时,我找到了这个链接:https://laracasts.com/discuss/channels/laravel/sometimes-validator-with-custom-message

其中包含类似的问题。初始代码是

$v = Validator::make(
                    $request->all(),
                    [ 'first_name' => 'required|max:60'],
                    ['first_name.required' => 'First name is really required, yo']
);

$v->sometimes('last_name', 'required|in:fake', function($input){
                    return true;
});

解决方案是

$v = Validator::make(
                    $request->all(),
                    [ 'first_name' => 'required|max:60'],
                    ['first_name.required' => 'First name is really required, yo'],
                    ['last_name.in' => 'Last name must be fake, too']
);

$v->sometimes('last_name', 'required|in:fake', function($input){
                    return true;
});

显然,您可能会在 Validator::make 的结果上调用有时 function 并传递字段名称、验证器签名和一个 bool 函数

关于php - 带有 "sometimes"规则的 Laravel Validator 自定义消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63574514/

相关文章:

javascript - 如何在离开当前页面之前加载链接页面

php - mysql一次可以导入多少数据

php - 无法在每个类别中保存数据 - PHP CSV

javascript - 如何在点击提交按钮之前检测我被点击的位置

php - 使用 composer create-project 安装特定的 laravel 5 版本

Laravel Spatie - 通过模式审核日志时的自定义属性值

php - 提高现有功能的性能,Laravel

php - 使用链接到特定配置文件的列循环遍历 PHP 数据库

Laravel Pluck 但结合名字+姓氏进行选择

laravel - 类 Illuminate\Support\Facades\RateLimiter 未找到