使用组件作为验证错误消息

use component as a validation error message

Laravel 8

我正在尝试用组件替换重复的验证错误消息

Register.blade.php:

<div class="mb-3">
   <label for="email" class="form-label">Email address</label>
     <input name="email" type="email" class="form-control" value="{{ old('email') }}">
    <x-alert :input="email" />
  </div>

Alert.php:

<?php

namespace App\View\Components;

use Illuminate\View\Component;

class Alert extends Component
{
  public $input;

  public function __construct($input)
  {
    $this->input = $input;
  }


  public function render()
  {
    return view('components.alert');
  }
}

alert.blade.php:

@error($input)
<span class="invalid-feedback" role="alert">{{ $message }}</span>
@enderror

但它给我一个错误

Use of undefined constant email - assumed 'email' (this will throw an Error in a future version of PHP) (View: C:\laragon\www\practice\resources\views\auth\register.blade.php)

按如下方式制作即可

<div class="mb-3">
   <label for="email" class="form-label">Email address</label>
   <input name="email" type="email" class="form-control" value="{{ old('email') }}">    
   <x-alert input="email" />
</div>

: 符号使其解析为 PHP 代码而非文字字符串