我想使用“#[Validate]”属性来验证表单帖子。当我运行它时,我收到错误:
Missing [$rules/rules()] property/method on Livewire component: [contactform].
...似乎完全忽略了验证属性:
namespace App\Livewire;
use Livewire\Component;
use Livewire\Attributes\Validate;
class Kontaktform extends Component
{
#[Validate('required',message: 'Please provide your name')]
#[Validate('max:255')]
public $name = '';
.
.
.
//Validate and submit
public function submitForm(){
$validated = $this->validate(); <-----error points to this line :S
dd($validated);
}
.
.
.
更换:
#[Validate('required',message: 'Please provide your name')]
#[Validate('max:255')]
public $name = '';
与:
#[Validate]
public $name = '';
并在您的 livewire 组件中添加以下 2 个方法:
public function rules()
{
'name' => 'required|max:255'
}
public function messages()
{
return [
'name.required' => 'Please provide your name',
'name.max:255' => 'Name cannot exceed 255 characters'
];
}