【发布时间】:2021-11-30 22:58:26
【问题描述】:
我正在使用 Laravel Livewire 构建一个带有实时验证的 EditModal。
为了实现验证,我必须像这样定义$rules 属性:
<?php
//...
//REAL-TIME VALIDATION (https://devdojo.com/tnylea/snippet/laravel-livewire-real-time-validation)
protected $rules = [
'name'=>'required|min:4|min:2|max:255',
'guard_name'=>'required|min:2|max:255',
'permission'=>'required|min:2|max:255'
'description'=>'required|min:5|max:255'
];
但是,当我尝试验证除当前记录之外的唯一性时,我觉得有必要使用$this->record_id,
<?php
//...
protected $rules = [
'name'=>'required|min:4|min:2|max:255|unique:permissions,name,'.$this->record_id,
'guard_name'=>'required|min:2|max:255',
'permission'=>'required|min:2|max:255|unique:permissions,permission,'.$this->record_id,
'description'=>'required|min:5|max:255'
];
但我现在面临的错误是:
表达式不允许作为字段默认值
或
常量表达式包含无效操作
嗯,这意味着我不能使用$this 来调用包含记录ID 的属性。
那么我该如何解决这个问题?如何访问 $rules 属性中的当前 ID?
【问题讨论】:
标签: laravel-livewire