feat: add auth routes and update register view

This commit is contained in:
2026-08-16 11:31:47 +03:30
parent 43c786a751
commit ede831c121
5 changed files with 129 additions and 28 deletions
@@ -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');
}
}
+14 -1
View File
@@ -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'
]
];
}
+6 -4
View File
@@ -6,10 +6,12 @@
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
*
@@ -35,14 +37,14 @@ use Illuminate\Database\Eloquent\SoftDeletes;
*
* @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'
];
+74 -16
View File
@@ -1,12 +1,13 @@
@extends('layouts.app')
@section('content')
<div class="container">
<h2 class="breadcrumb-title">ثبت نام</h2>
<ul class="breadcrumb-menu">
<li>
<a href="{{ url('/') }}">صفحه اصلی</a>
<a href="#">صفحه اصلی</a>
</li>
<li class="active">ثبت نام</li>
@@ -17,7 +18,10 @@
<div class="col-md-5 mx-auto">
<div class="login-form">
<div class="login-header">
<a href="{{route('index')}}">
<img src="{{ asset('assets/img/logo/logo-dark.png') }}" alt="">
</a>
<p>حساب MyTrip خود را ایجاد کنید</p>
</div>
<form action="#" method="POST" enctype="multipart/form-data">
@@ -32,7 +36,13 @@
class="form-control"
placeholder="نام"
id="first_name"
value="{{old('first_name')}}"
>
<span>
@error('first_name')
<u>({{ $message }})</u>
@enderror
</span>
<i class="far fa-user"></i>
</div>
</div>
@@ -46,8 +56,13 @@
class="form-control"
placeholder="نام خانوادگی"
id="last_name"
value="{{old('last_name')}}"
>
@error('last_name')
<u>({{ $message }})</u>
@enderror
<i class="far fa-user"></i>
</div>
</div>
@@ -61,8 +76,12 @@
class="form-control"
placeholder="کد ملی"
id="national_code"
value="{{old('national_code')}}"
>
@error('national_code')
<u>({{ $message }})</u>
@enderror
<i class="far fa-id-card"></i>
</div>
</div>
@@ -71,9 +90,12 @@
<div class="form-group-icon">
<select name="gender" class="form-control" id="gender">
<option value="">انتخاب جنسیت</option>
<option value="male">مرد</option>
<option value="female">زن</option>
<option value="1">مرد</option>
<option value="0">زن</option>
</select>
@error('gender')
<u>({{ $message }})</u>
@enderror
<i class="far fa-user"></i>
</div>
</div>
@@ -82,11 +104,14 @@
<div class="form-group-icon">
<select name="marital_status" class="form-control" id="marital_status">
<option value="">انتخاب وضعیت تأهل</option>
<option value="single">مجرد</option>
<option value="married">متأهل</option>
<option value="divorced">مطلقه</option>
<option value="widowed">بیوه</option>
<option value="0">مجرد</option>
<option value="1">متأهل</option>
<option value="2">مطلقه</option>
</select>
@error('marital_status')
<u>({{ $message }})</u>
@enderror
<i class="far fa-heart"></i>
</div>
</div>
@@ -99,8 +124,13 @@
class="form-control"
placeholder="نام و نام خانوادگی همسر"
id="spouse_name"
value="{{old('spouse_name')}}"
>
@error('spouse_name')
<u>({{ $message }})</u>
@enderror
<i class="far fa-user"></i>
</div>
</div>
@@ -113,7 +143,12 @@
class="form-control"
placeholder="شماره موبایل"
id="mobile"
value="{{old('mobile')}}"
>
@error('mobile')
<u>({{ $message }})</u>
@enderror
<i class="far fa-phone"></i>
</div>
</div>
@@ -126,7 +161,12 @@
class="form-control"
placeholder="ایمیل خود را وارد کنید"
id="email"
value="{{old('email')}}"
>
@error('email')
<u>({{ $message }})</u>
@enderror
<i class="far fa-envelope"></i>
</div>
</div>
@@ -140,20 +180,29 @@
accept="image/*"
id="image"
>
@error('image')
<u>({{ $message }})</u>
@enderror
<i class="far fa-image"></i>
</div>
</div>
<div class="form-group">
<label for="username">نام کاربری *</label>
<label for="user_name">نام کاربری *</label>
<div class="form-group-icon">
<input
type="text"
name="username"
name="user_name"
class="form-control"
placeholder="نام کاربری"
id="username"
id="user_name"
value="{{old('username')}}"
>
@error('user_name')
<u>({{ $message }})</u>
@enderror
<i class="far fa-user"></i>
</div>
</div>
@@ -167,6 +216,9 @@
placeholder="رمز عبور را وارد کنید"
id="password"
>
@error('password')
<u>({{ $message }})</u>
@enderror
<i class="far fa-lock"></i>
</div>
</div>
@@ -189,12 +241,15 @@
<div class="form-group-icon">
<select name="province" class="form-control" id="province">
<option value="">انتخاب استان</option>
<option value="mazandaran">مازندران</option>
<option value="tehran">تهران</option>
<option value="gilan">گیلان</option>
<option value="fars">فارس</option>
<option value="isfahan">اصفهان</option>
@foreach($provinces as $province)
<option value="mazandaran">{{$province->name}}</option>
@endforeach
</select>
@error('province')
<u>({{ $message }})</u>
@enderror
<i class="far fa-map"></i>
</div>
</div>
@@ -209,6 +264,9 @@
<option value="mashhad">مشهد</option>
<option value="isfahan">اصفهان</option>
</select>
@error('city')
<u>({{ $message }})</u>
@enderror
<i class="far fa-map-marker-alt"></i>
</div>
</div>
@@ -246,7 +304,7 @@
</div>
<p>
از قبل حساب کاربری دارید؟
<a href="{{ route('auth.login') }}">
<a href="{{ route('auth.login.index') }}">
وارد شدن.
</a>
</p>
+12 -2
View File
@@ -1,11 +1,21 @@
<?php
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\LogoutController;
use App\Http\Controllers\Auth\RegisterController;
use Illuminate\Support\Facades\Route;
Route::prefix('auth/')->name('auth.')->middleware('guest')->group(function () {
Route::get('login' , [LoginController::class , 'index'])->name('login');
Route::get('register' , [RegisterController::class , 'index'])->name('register');
Route::prefix('login')->controller(LoginController::class)->name('login.')->group(function () {
Route::get('', 'index')->name('index');
Route::post('', 'post')->name('post');
});
Route::prefix('register')->controller(RegisterController::class)->name('register.')->group(function () {
Route::get('/', 'index')->name('index');
Route::post('/', 'post')->name('post');
});
});
Route::get('logout', [LogoutController::class, 'index'])->name('logout');