i got this error when i’m trying to build the register page using **laravel livewire**
(View: /path/to/files/sitename/vendor/livewire/livewire/src/Macros/livewire-view.blade.php)
Route
Route::livewire('/register', 'auth.register')->name('register');
Register View
@section('content')
<div class="container mx-auto">
<div class="flex flex-wrap justify-center">
<div class="w-full max-w-sm">
<div class="flex flex-col break-words bg-white border border-2 rounded shadow-md">
<div class="font-semibold bg-gray-200 text-gray-700 py-3 px-6 mb-0">
{{ __('Register') }}
</div>
<form class="w-full p-6" method="POST" wire:submit.prevent="register">
<div class="flex flex-wrap mb-6">
<label for="name" class="block text-gray-700 text-sm font-bold mb-2">
{{ __('Name') }}:
</label>
<input id="name" type="text" class="form-input w-full @error('name') border-red-500 @enderror" wire:model="name" value="{{ old('name') }}" required autocomplete="name" autofocus>
@error('name')
<p class="text-red-500 text-xs italic mt-4">
{{ $message }}
</p>
@enderror
</div>
<div class="flex flex-wrap mb-6">
<label for="email" class="block text-gray-700 text-sm font-bold mb-2">
{{ __('E-Mail Address') }}:
</label>
<input id="email" type="email" class="form-input w-full @error('email') border-red-500 @enderror" wire:model="email" value="{{ old('email') }}" required autocomplete="email">
@error('email')
<p class="text-red-500 text-xs italic mt-4">
{{ $message }}
</p>
@enderror
</div>
<div class="flex flex-wrap mb-6">
<label for="password" class="block text-gray-700 text-sm font-bold mb-2">
{{ __('Password') }}:
</label>
<input id="password" type="password" class="form-input w-full @error('password') border-red-500 @enderror" wire:model="password" required autocomplete="new-password">
@error('password')
<p class="text-red-500 text-xs italic mt-4">
{{ $message }}
</p>
@enderror
</div>
<div class="flex flex-wrap mb-6">
<label for="password-confirm" class="block text-gray-700 text-sm font-bold mb-2">
{{ __('Confirm Password') }}:
</label>
<input id="password-confirm" type="password" class="form-input w-full" wire:model="password_confirmation" required autocomplete="new-password">
</div>
<div class="flex flex-wrap">
<button type="submit" class="inline-block align-middle text-center select-none border font-bold whitespace-no-wrap py-2 px-4 rounded text-base leading-normal no-underline text-gray-100 bg-blue-500 hover:bg-blue-700">
{{ __('Register') }}
</button>
<p class="w-full text-xs text-center text-gray-700 mt-8 -mb-4">
{{ __('Already have an account?') }}
<a class="text-blue-500 hover:text-blue-700 no-underline" href="{{ route('login') }}">
{{ __('Login') }}
</a>
</p>
</div>
</form>
</div>
</div>
</div>
</div>
@endsection
Controller
<?php
namespace App\Http\Livewire\Auth;
use App\User;
use Livewire\Component;
class Register extends Component
{
public $form = [
'name' => '',
'email' => '',
'password' => '',
'password_confirmation' => '',
];
public function validated($field)
{
$this->validateOnly($field, [
'form.name' => 'required|string|max:30|min:2',
'form.email' => 'required|email|max:100',
'form.password' => 'required|confirmed',
]);
}
public function register()
{
$this->validate([
'form.name' => 'required|string|max:30|min:2',
'form.email' => 'required|email|max:100',
'form.password' => 'required|confirmed',
]);
User::create($this->form);
return redirect(route('login'));
}
public function render()
{
return view('livewire.auth.register');
}
}
User Model
<?php
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable implements MustVerifyEmail
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
public function comments()
{
return $this->hasMany(Comment::class);
}
public function setPasswordAttribute($value)
{
$this->attributes['password'] = bcrypt($value);
}
}
any Ideas?