【问题标题】:Laravel 9 required_if not validatingLaravel 9 required_if 不验证
【发布时间】:2022-12-08 03:16:24
【问题描述】:

我正在使用 Laravel 9 和 Livewire 2.0

我有一个名为“new_weight”的整数字段,如果选择了布尔复选框“剥离”,它应该验证是否需要。尽管未选择“剥离”,但仍按要求进行验证。验证 $rules 被命中,因为如果我删除规则,它根本不会验证。

我最近还注意到,如果我在选中复选框时死掉并转储“$this->stripped”,它会将“true”转储到控制台而不是“1”,但如果我未选中,它会转储“0”--不确定这是否重要。

编辑.php

...
protected $rules = [
    'car_color' => 'required|string',
    'new_weight' => 'required_if:stripped,accepted|integer|min:1|max:999',
];


protected $messages = [
    'car_color' => 'Please enter car color.',
    'new_weight' => 'New Weight Value must be great than 1 but less than 999'
];
...

编辑.blade.php

...
<div class="flex items-center h-5">
   <input wire:model.defer="stripped" id="stripped" name="stripped"
          wire:click="updateStripped"
          type="checkbox">
</div>
<div>
<input wire:model.defer="new_weight" id="new_weight" name="new_weight"
       type="text"
       placeholder="New Vehicle Weight in lbs:">
</div>
...

【问题讨论】:

    标签: php laravel laravel-livewire


    【解决方案1】:

    由于剥离本身不是规则,我会考虑使用自定义回调来评估剥离的输入。

    'new_weight' => [
      Rule::requiredIf(function () use ($request) {
        return $request->input('stripped');
      }),
     'integer|min:1|max:999'
    ]
    

    【讨论】:

      猜你喜欢
      • 2016-10-13
      • 1970-01-01
      • 2021-03-06
      • 1970-01-01
      • 2019-03-21
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      • 2019-06-07
      相关资源
      最近更新 更多