diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 583ec3d..cded314 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -2,17 +2,35 @@ namespace App\Http\Controllers\Auth; +use App\Enums\UserMaritalStatus; use App\Http\Controllers\Controller; +use App\Http\Requests\Auth\RegisterPostRequest; +use App\Models\Province; +use App\Models\User; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Hash; class RegisterController extends Controller { public function index() { + $provinces = Province::all(); + $maritalStatuses = UserMaritalStatus::cases(); $withoutHeader = true; $withoutFooter = true; - return view('auth.register' , compact('withoutFooter' , 'withoutHeader')); + return view('auth.register' , compact('withoutFooter' , 'withoutHeader' , 'provinces' , 'maritalStatuses')); } + + public function post(RegisterPostRequest $request) + { + $input = $request->validated(); + $input['password'] = Hash::make($input['password']); + + $user = User::create($input); + Auth::login($user); + return redirect()->route('index'); + } } diff --git a/app/Http/Requests/Auth/RegisterPostRequest.php b/app/Http/Requests/Auth/RegisterPostRequest.php index fbd8b9b..e0697db 100644 --- a/app/Http/Requests/Auth/RegisterPostRequest.php +++ b/app/Http/Requests/Auth/RegisterPostRequest.php @@ -82,7 +82,20 @@ class RegisterPostRequest extends FormRequest 'persian_alpha' ], 'gender' => [ - 'required' + 'required', + 'int', + 'in:0,1,2' + ], + 'marital_status' => [ + 'required', + 'int', + 'in:0,1' + ], + 'user_province' => [ + 'nullable' + ], + 'user_city' => [ + 'nullable' ] ]; } diff --git a/app/Models/User.php b/app/Models/User.php index 51b450d..51f4b78 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -6,13 +6,15 @@ namespace App\Models; +use App\Enums\UserGender; +use App\Enums\UserMaritalStatus; use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; - +use Illuminate\Foundation\Auth\User as Authenticated; /** * Class User - * + * * @property int $id * @property string $first_name * @property string $last_name @@ -30,19 +32,19 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @property Carbon $created_at * @property Carbon $updated_at * @property string|null $deleted_at - * + * * @property File $file * * @package App\Models */ -class User extends Model +class User extends Authenticated { use SoftDeletes; protected $table = 'users'; protected $casts = [ - 'gender' => 'bool', - 'marital_status' => 'int', + 'gender' => UserGender::class, + 'marital_status' => UserMaritalStatus::class, 'file_id' => 'int' ]; diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php index e650ec5..7cdd09a 100644 --- a/resources/views/auth/register.blade.php +++ b/resources/views/auth/register.blade.php @@ -1,12 +1,13 @@ @extends('layouts.app') @section('content') +