如何在 Livewire 2 中实现实时验证?
How to implement real time validation in Livewire 2?
在我应用新的 livewire V2 编程风格之前,我有一个连接到模型的各个属性的表单。
为了触发字段的实时验证,我在组件中使用了它(例如 name 属性):
public function updatedName(){
$this->validate(['name' =>'required|max:127']);
}
名称是名为 Malt 的模型的 属性。
我的问题是:如何修改这个 updatedName() 函数?
我已经知道我应该将函数重命名为 updatedMaltName,因此我尝试了这个。
public function updatedMaltName(){
$this->validate(['name' =>'required|max:127']);
}
但它不起作用。相反,只要我在字段中键入一个字符(这与应该发生的情况相反),它就会显示错误“名称字段是必需的”,并且即使我清空该字段也不会隐藏此错误。
我也试过这个
public function updatedMaltName(){
$this->validate(['malt.name' =>'required|max:127']);
}
但这根本行不通。
在 component-class 中的 $rules
属性 中定义规则集。
protected $rules = [
'malt.name' => 'required|max:127',
];
您现在可以在刚刚更新的字段上挂钩 updated()
方法和 validateOnly()
。现在,这将使用 $rules
.
中定义的规则集验证模型上正在更新的任何字段
public function updated($property)
{
$this->validateOnly($property);
}
$property
参数是您要更新的字段的名称,例如 malt.name
.
您当然可以连接到您正在更新的特定 属性,并仅验证该字段。这假设您在 属性 $malt
中有一个模型,其中有一个 属性 name
。
public function updatedMaltName()
{
$this->validateOnly('malt.name');
}
在我应用新的 livewire V2 编程风格之前,我有一个连接到模型的各个属性的表单。 为了触发字段的实时验证,我在组件中使用了它(例如 name 属性):
public function updatedName(){
$this->validate(['name' =>'required|max:127']);
}
名称是名为 Malt 的模型的 属性。 我的问题是:如何修改这个 updatedName() 函数?
我已经知道我应该将函数重命名为 updatedMaltName,因此我尝试了这个。
public function updatedMaltName(){
$this->validate(['name' =>'required|max:127']);
}
但它不起作用。相反,只要我在字段中键入一个字符(这与应该发生的情况相反),它就会显示错误“名称字段是必需的”,并且即使我清空该字段也不会隐藏此错误。
我也试过这个
public function updatedMaltName(){
$this->validate(['malt.name' =>'required|max:127']);
}
但这根本行不通。
在 component-class 中的 $rules
属性 中定义规则集。
protected $rules = [
'malt.name' => 'required|max:127',
];
您现在可以在刚刚更新的字段上挂钩 updated()
方法和 validateOnly()
。现在,这将使用 $rules
.
public function updated($property)
{
$this->validateOnly($property);
}
$property
参数是您要更新的字段的名称,例如 malt.name
.
您当然可以连接到您正在更新的特定 属性,并仅验证该字段。这假设您在 属性 $malt
中有一个模型,其中有一个 属性 name
。
public function updatedMaltName()
{
$this->validateOnly('malt.name');
}