feat: add auth routes and update register view
This commit is contained in:
@@ -2,17 +2,35 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
|
use App\Enums\UserMaritalStatus;
|
||||||
use App\Http\Controllers\Controller;
|
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\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
class RegisterController extends Controller
|
class RegisterController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
|
$provinces = Province::all();
|
||||||
|
$maritalStatuses = UserMaritalStatus::cases();
|
||||||
$withoutHeader = true;
|
$withoutHeader = true;
|
||||||
$withoutFooter = 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'
|
'persian_alpha'
|
||||||
],
|
],
|
||||||
'gender' => [
|
'gender' => [
|
||||||
'required'
|
'required',
|
||||||
|
'int',
|
||||||
|
'in:0,1,2'
|
||||||
|
],
|
||||||
|
'marital_status' => [
|
||||||
|
'required',
|
||||||
|
'int',
|
||||||
|
'in:0,1'
|
||||||
|
],
|
||||||
|
'user_province' => [
|
||||||
|
'nullable'
|
||||||
|
],
|
||||||
|
'user_city' => [
|
||||||
|
'nullable'
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-6
@@ -6,13 +6,15 @@
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Enums\UserGender;
|
||||||
|
use App\Enums\UserMaritalStatus;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
use Illuminate\Foundation\Auth\User as Authenticated;
|
||||||
/**
|
/**
|
||||||
* Class User
|
* Class User
|
||||||
*
|
*
|
||||||
* @property int $id
|
* @property int $id
|
||||||
* @property string $first_name
|
* @property string $first_name
|
||||||
* @property string $last_name
|
* @property string $last_name
|
||||||
@@ -30,19 +32,19 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
|||||||
* @property Carbon $created_at
|
* @property Carbon $created_at
|
||||||
* @property Carbon $updated_at
|
* @property Carbon $updated_at
|
||||||
* @property string|null $deleted_at
|
* @property string|null $deleted_at
|
||||||
*
|
*
|
||||||
* @property File $file
|
* @property File $file
|
||||||
*
|
*
|
||||||
* @package App\Models
|
* @package App\Models
|
||||||
*/
|
*/
|
||||||
class User extends Model
|
class User extends Authenticated
|
||||||
{
|
{
|
||||||
use SoftDeletes;
|
use SoftDeletes;
|
||||||
protected $table = 'users';
|
protected $table = 'users';
|
||||||
|
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
'gender' => 'bool',
|
'gender' => UserGender::class,
|
||||||
'marital_status' => 'int',
|
'marital_status' => UserMaritalStatus::class,
|
||||||
'file_id' => 'int'
|
'file_id' => 'int'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
@extends('layouts.app')
|
@extends('layouts.app')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h2 class="breadcrumb-title">ثبت نام</h2>
|
<h2 class="breadcrumb-title">ثبت نام</h2>
|
||||||
|
|
||||||
<ul class="breadcrumb-menu">
|
<ul class="breadcrumb-menu">
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ url('/') }}">صفحه اصلی</a>
|
<a href="#">صفحه اصلی</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="active">ثبت نام</li>
|
<li class="active">ثبت نام</li>
|
||||||
@@ -17,7 +18,10 @@
|
|||||||
<div class="col-md-5 mx-auto">
|
<div class="col-md-5 mx-auto">
|
||||||
<div class="login-form">
|
<div class="login-form">
|
||||||
<div class="login-header">
|
<div class="login-header">
|
||||||
<img src="{{ asset('assets/img/logo/logo-dark.png') }}" alt="">
|
<a href="{{route('index')}}">
|
||||||
|
<img src="{{ asset('assets/img/logo/logo-dark.png') }}" alt="">
|
||||||
|
|
||||||
|
</a>
|
||||||
<p>حساب MyTrip خود را ایجاد کنید</p>
|
<p>حساب MyTrip خود را ایجاد کنید</p>
|
||||||
</div>
|
</div>
|
||||||
<form action="#" method="POST" enctype="multipart/form-data">
|
<form action="#" method="POST" enctype="multipart/form-data">
|
||||||
@@ -32,7 +36,13 @@
|
|||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="نام"
|
placeholder="نام"
|
||||||
id="first_name"
|
id="first_name"
|
||||||
|
value="{{old('first_name')}}"
|
||||||
>
|
>
|
||||||
|
<span>
|
||||||
|
@error('first_name')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
|
</span>
|
||||||
<i class="far fa-user"></i>
|
<i class="far fa-user"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -46,8 +56,13 @@
|
|||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="نام خانوادگی"
|
placeholder="نام خانوادگی"
|
||||||
id="last_name"
|
id="last_name"
|
||||||
|
value="{{old('last_name')}}"
|
||||||
|
|
||||||
|
|
||||||
>
|
>
|
||||||
|
@error('last_name')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
<i class="far fa-user"></i>
|
<i class="far fa-user"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -61,8 +76,12 @@
|
|||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="کد ملی"
|
placeholder="کد ملی"
|
||||||
id="national_code"
|
id="national_code"
|
||||||
|
value="{{old('national_code')}}"
|
||||||
|
|
||||||
>
|
>
|
||||||
|
@error('national_code')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
<i class="far fa-id-card"></i>
|
<i class="far fa-id-card"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -71,9 +90,12 @@
|
|||||||
<div class="form-group-icon">
|
<div class="form-group-icon">
|
||||||
<select name="gender" class="form-control" id="gender">
|
<select name="gender" class="form-control" id="gender">
|
||||||
<option value="">انتخاب جنسیت</option>
|
<option value="">انتخاب جنسیت</option>
|
||||||
<option value="male">مرد</option>
|
<option value="1">مرد</option>
|
||||||
<option value="female">زن</option>
|
<option value="0">زن</option>
|
||||||
</select>
|
</select>
|
||||||
|
@error('gender')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
<i class="far fa-user"></i>
|
<i class="far fa-user"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -82,11 +104,14 @@
|
|||||||
<div class="form-group-icon">
|
<div class="form-group-icon">
|
||||||
<select name="marital_status" class="form-control" id="marital_status">
|
<select name="marital_status" class="form-control" id="marital_status">
|
||||||
<option value="">انتخاب وضعیت تأهل</option>
|
<option value="">انتخاب وضعیت تأهل</option>
|
||||||
<option value="single">مجرد</option>
|
<option value="0">مجرد</option>
|
||||||
<option value="married">متأهل</option>
|
<option value="1">متأهل</option>
|
||||||
<option value="divorced">مطلقه</option>
|
<option value="2">مطلقه</option>
|
||||||
<option value="widowed">بیوه</option>
|
|
||||||
</select>
|
</select>
|
||||||
|
@error('marital_status')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
<i class="far fa-heart"></i>
|
<i class="far fa-heart"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -99,8 +124,13 @@
|
|||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="نام و نام خانوادگی همسر"
|
placeholder="نام و نام خانوادگی همسر"
|
||||||
id="spouse_name"
|
id="spouse_name"
|
||||||
|
value="{{old('spouse_name')}}"
|
||||||
|
|
||||||
|
|
||||||
>
|
>
|
||||||
|
@error('spouse_name')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
<i class="far fa-user"></i>
|
<i class="far fa-user"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -113,7 +143,12 @@
|
|||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="شماره موبایل"
|
placeholder="شماره موبایل"
|
||||||
id="mobile"
|
id="mobile"
|
||||||
|
value="{{old('mobile')}}"
|
||||||
|
|
||||||
>
|
>
|
||||||
|
@error('mobile')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
<i class="far fa-phone"></i>
|
<i class="far fa-phone"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -126,7 +161,12 @@
|
|||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="ایمیل خود را وارد کنید"
|
placeholder="ایمیل خود را وارد کنید"
|
||||||
id="email"
|
id="email"
|
||||||
|
value="{{old('email')}}"
|
||||||
|
|
||||||
>
|
>
|
||||||
|
@error('email')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
<i class="far fa-envelope"></i>
|
<i class="far fa-envelope"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -140,20 +180,29 @@
|
|||||||
accept="image/*"
|
accept="image/*"
|
||||||
id="image"
|
id="image"
|
||||||
>
|
>
|
||||||
|
@error('image')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
<i class="far fa-image"></i>
|
<i class="far fa-image"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="username">نام کاربری *</label>
|
<label for="user_name">نام کاربری *</label>
|
||||||
|
|
||||||
<div class="form-group-icon">
|
<div class="form-group-icon">
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
name="username"
|
name="user_name"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
placeholder="نام کاربری"
|
placeholder="نام کاربری"
|
||||||
id="username"
|
id="user_name"
|
||||||
|
value="{{old('username')}}"
|
||||||
|
|
||||||
|
|
||||||
>
|
>
|
||||||
|
@error('user_name')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
<i class="far fa-user"></i>
|
<i class="far fa-user"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -167,6 +216,9 @@
|
|||||||
placeholder="رمز عبور را وارد کنید"
|
placeholder="رمز عبور را وارد کنید"
|
||||||
id="password"
|
id="password"
|
||||||
>
|
>
|
||||||
|
@error('password')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
<i class="far fa-lock"></i>
|
<i class="far fa-lock"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -189,12 +241,15 @@
|
|||||||
<div class="form-group-icon">
|
<div class="form-group-icon">
|
||||||
<select name="province" class="form-control" id="province">
|
<select name="province" class="form-control" id="province">
|
||||||
<option value="">انتخاب استان</option>
|
<option value="">انتخاب استان</option>
|
||||||
<option value="mazandaran">مازندران</option>
|
@foreach($provinces as $province)
|
||||||
<option value="tehran">تهران</option>
|
<option value="mazandaran">{{$province->name}}</option>
|
||||||
<option value="gilan">گیلان</option>
|
@endforeach
|
||||||
<option value="fars">فارس</option>
|
|
||||||
<option value="isfahan">اصفهان</option>
|
|
||||||
</select>
|
</select>
|
||||||
|
@error('province')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
<i class="far fa-map"></i>
|
<i class="far fa-map"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -209,6 +264,9 @@
|
|||||||
<option value="mashhad">مشهد</option>
|
<option value="mashhad">مشهد</option>
|
||||||
<option value="isfahan">اصفهان</option>
|
<option value="isfahan">اصفهان</option>
|
||||||
</select>
|
</select>
|
||||||
|
@error('city')
|
||||||
|
<u>({{ $message }})</u>
|
||||||
|
@enderror
|
||||||
<i class="far fa-map-marker-alt"></i>
|
<i class="far fa-map-marker-alt"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -246,7 +304,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
از قبل حساب کاربری دارید؟
|
از قبل حساب کاربری دارید؟
|
||||||
<a href="{{ route('auth.login') }}">
|
<a href="{{ route('auth.login.index') }}">
|
||||||
وارد شدن.
|
وارد شدن.
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
+13
-3
@@ -1,11 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Http\Controllers\Auth\LoginController;
|
use App\Http\Controllers\Auth\LoginController;
|
||||||
|
use App\Http\Controllers\Auth\LogoutController;
|
||||||
use App\Http\Controllers\Auth\RegisterController;
|
use App\Http\Controllers\Auth\RegisterController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
|
|
||||||
Route::prefix('auth/')->name('auth.')->middleware('guest')->group(function (){
|
Route::prefix('auth/')->name('auth.')->middleware('guest')->group(function () {
|
||||||
Route::get('login' , [LoginController::class , 'index'])->name('login');
|
Route::prefix('login')->controller(LoginController::class)->name('login.')->group(function () {
|
||||||
Route::get('register' , [RegisterController::class , 'index'])->name('register');
|
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