Laravel 10 Livewire 3 - “验证”属性不起作用

问题描述 投票:0回答:1

我想使用“#[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);

   }
.
.
.
laravel-livewire
1个回答
0
投票

更换:

   #[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'
    ];
  }
© www.soinside.com 2019 - 2024. All rights reserved.