【问题标题】:Include extra validation in Laravel 8 using $errors Variable在 Laravel 8 中使用 $errors 变量包含额外的验证
【发布时间】:2021-09-17 07:06:29
【问题描述】:

我的 TransactionController 有一个 store 方法,目前它确实验证是否收到了所需的信息(标准 Laravel 验证),但是,它无法检查接收到的值是否存在于第三个表中(因为它是外键)。

TransactionController.php的存储方法

public function store(Request $request)
    {

        $request -> validate([
            
            'folio' => 'required',
            'codigo_referido_id' => 'required',
            'descuento_activo_id' => 'required',
            'lead_id' => 'required'

        ]);

    }

[...]

我想添加进一步的验证,以确保接收到的信息已准备好存储在数据库中,如果没有,则通过自定义消息通知用户。

这是通过以下方式完成的:

TransactionController.php 存储方法

[...]
if($request['codigo_referido_id']){
            
            if( Empleado::find($request['codigo_referido_id']) ){

                // Continue to the next validation

            }else{

                // return to view with the error message [I want to use the default $errors variable to store the error return].

            }
        
        

        }

如何返回到在 else 子句中发送自定义错误消息的视图?

【问题讨论】:

    标签: php laravel laravel-8


    【解决方案1】:

    您可以为此添加自定义验证而不是 if else

    $request -> validate([
    
                'folio' => 'required',
                'codigo_referido_id' => ['required', function ($attribute, $value, $fail) {
                    if (!Empleado::find($value)) {
                        $fail('The '.$attribute.' is invalid.');
                    }
                }],
                'descuento_activo_id' => 'required',
                'lead_id' => 'required'
    
            ]);
    

    参考:https://laravel.com/docs/8.x/validation#custom-validation-rules

    【讨论】:

    • 非常感谢,这正是我要找的,你能告诉我在哪里可以找到有关此功能的更多信息吗?在 Laravel 文档中,我发现了另一种方法,更复杂,没有给出示例。所以我感到困惑,而不是找到答案。
    猜你喜欢
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 2016-05-21
    • 2015-09-15
    相关资源
    最近更新 更多