【问题标题】:Laravel Livewire Validation With Database ColumnLaravel Livewire 验证与数据库列
【发布时间】:2022-01-07 15:23:20
【问题描述】:

我有一个包含合同列的项目表。合同列可以为空。因为有些项目可能没有合同。如果项目有合同,必须接受合同:

// Blade 
@if($project->contract)
<div>
    <div class="inline-flex items-center space-x-2">
        <input wire:model.defer="contract" id="contract" type="checkbox">
        <label for="contract">I accept <a href="#">contract</a></label>
        @error('contract')
            <span class="text-xs text-red-500">{{ $message }}</span>
        @enderror
    </div>
</div>
@endif


// Component
$this->validate([
        'contract' => 'accepted',
    ],

// Tried like this too
$this->validate([
        'contract' => 'exists:projects|accepted',
    ],

我尝试了这些,但空合同表也在验证。如何验证此空列?

【问题讨论】:

    标签: laravel validation laravel-livewire


    【解决方案1】:

    写这个

    if(isset(request('contract'))){
         $this->validate([
                    'contract' => 'exists:projects|accepted',
                ]
      }
    

    【讨论】:

    • 试过但给了我另一个验证错误:“所选合同无效。”
    • 可以分享控制器的代码吗?
    • if(isset(request('contract'))){ $this->validate([ 'contract' => 'exists:projects|accepted', ], }
    • 我已经像这样使用(accepted_if 规则)并且看起来像工作: public function render() { if($this->project->contract){ $this->contractValue = 1; }else{ $this->contractValue = 0; } return view('livewire.single-project')->extends('layouts.app')->section('content'); } $this->validate([ 'contract' => 'accepted_if:contractValue,1', ]);
    猜你喜欢
    • 1970-01-01
    • 2021-09-12
    • 2021-06-12
    • 2020-07-04
    • 2021-04-20
    • 2021-12-08
    • 1970-01-01
    • 2022-08-23
    • 2020-11-20
    相关资源
    最近更新 更多