dishplanner/app/Livewire/Auth/Register.php

59 lines
1.4 KiB
PHP
Raw Normal View History

<?php
namespace App\Livewire\Auth;
use App\Models\User;
use Livewire\Component;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Livewire\Attributes\Rule;
class Register extends Component
{
#[Rule('required|string|max:255')]
public $name = '';
#[Rule('required|email|unique:users,email')]
public $email = '';
#[Rule('required|min:8|confirmed')]
public $password = '';
public $password_confirmation = '';
#[Rule('required|exists:planners,id')]
public $planner_id = '';
public function mount()
{
// Set default planner_id if only one exists
$planners = \App\Models\Planner::all();
if ($planners->count() === 1) {
$this->planner_id = $planners->first()->id;
}
}
public function register()
{
$this->validate();
$user = User::create([
'name' => $this->name,
'email' => $this->email,
'password' => Hash::make($this->password),
'planner_id' => $this->planner_id,
]);
Auth::login($user);
session()->regenerate();
return redirect()->route('dashboard');
}
public function render()
{
return view('livewire.auth.register', [
'planners' => \App\Models\Planner::all()
])->layout('layouts.guest');
}
}