【问题标题】:Laravel Validation: use laravel required and if exists togetherLaravel 验证:需要使用 laravel,如果同时存在
【发布时间】:2020-05-19 13:03:03
【问题描述】:

我有以下验证要求。

如果inventory_purchase_bill == True,lines..sku 应该是 必需|存在:items,sku 如果 inventory_purchase_bill == False, 行。.sku 应该为空|exists:items,sku

基本上只在存在值时测试存在。如果没有值或为空,则不检查是否存在。

尝试跟随,但先覆盖第二行。如何做到这一点?

$validation = $this->validate($request, [
            'inventory_purchase_bill' => 'required',
            'lines.*.sku' => 'exclude_unless:inventory_purchase_bill,false|nullable|exists:items,sku',            
            'lines.*.sku' => 'exclude_unless:inventory_purchase_bill,true|required|exists:items,sku',            
        ]);

【问题讨论】:

    标签: validation laravel-7


    【解决方案1】:
    'lines.*.sku' =>  function($attribute, $value, $fail) use ($request) {
                    if ($request->bill_type == 'Stock Purchase') {
                        if($value !=null && $value != ''){
                            $item = Item::where('sku',$value)->first();
                            if($item == null){
                                return $fail($value.' not in database. Please add new item.');
                            }
                        }else{
                            return $fail('SKU is required.');
                        }
                    }
                    if ($request->bill_type == 'Expense') {
                        if($value !=null && $value != ''){
                            $item = Item::where('sku',$value)->first();
                            if($item == null){
                                return $fail($value.' not in database. Please add new item.');
                            }
                        }
                    }
                }, 
    

    【讨论】:

      猜你喜欢
      • 2017-08-13
      • 2019-02-23
      • 2017-11-16
      • 2016-12-18
      • 2017-11-19
      • 2015-09-22
      • 2019-05-18
      • 2018-02-20
      • 1970-01-01
      相关资源
      最近更新 更多