feat: add auth routes and update register view
This commit is contained in:
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
@@ -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'
|
||||
];
|
||||
|
||||
|
||||
@@ -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
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user