fix:change admin routes and flight blade

This commit is contained in:
2026-08-20 16:48:53 +03:30
parent e30ccbdbef
commit 81cceb761c
3 changed files with 188 additions and 40 deletions
+11 -12
View File
@@ -1,15 +1,10 @@
<?php <?php
/**
* Created by Reliese Model.
*/
namespace App\Models; namespace App\Models;
use App\Enums\AdminStatus; use App\Enums\AdminStatus;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Carbon\Carbon; use Carbon\Carbon;
use App\Models\Permission; use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\Model;
/** /**
* Class Admin * Class Admin
@@ -24,11 +19,12 @@ use Illuminate\Database\Eloquent\Model;
* @property Carbon $created_at * @property Carbon $created_at
* @property Carbon $updated_at * @property Carbon $updated_at
* *
* @package App\Models * @property-read AdminPermission|null $permission
*/ */
class Admin extends Authenticatable class Admin extends Authenticatable
{ {
protected $table = 'admins'; protected $table = 'admins';
public static $snakeAttributes = false; public static $snakeAttributes = false;
protected $casts = [ protected $casts = [
@@ -37,7 +33,7 @@ class Admin extends Authenticatable
]; ];
protected $hidden = [ protected $hidden = [
'password' 'password',
]; ];
protected $fillable = [ protected $fillable = [
@@ -47,7 +43,7 @@ class Admin extends Authenticatable
'email', 'email',
'username', 'username',
'password', 'password',
'status' 'status',
]; ];
public function file() public function file()
@@ -55,9 +51,12 @@ class Admin extends Authenticatable
return $this->belongsTo(File::class, 'file_id'); return $this->belongsTo(File::class, 'file_id');
} }
public function permission() public function permission()
{ {
return $this->hasOne(AdminPermission::class); return $this->hasOne(
AdminPermission::class,
'admin_id',
'id'
);
} }
} }
+82 -5
View File
@@ -1,13 +1,28 @@
<div class="col-md-6 col-lg-3"> <div class="col-md-6 col-lg-3">
<div class="flight-item"> <div class="flight-item">
{{-- Flight Image --}}
<div class="flight-img"> <div class="flight-img">
@if($flight->file?->path)
<img
src="{{ asset('storage/' . $flight->file->path) }}"
alt="{{ $flight->title }}"
>
@else
<img <img
src="{{ asset('assets/img/flight/01.jpg') }}" src="{{ asset('assets/img/flight/01.jpg') }}"
alt="{{ $flight->title }}" alt="{{ $flight->title }}"
> >
@endif
{{-- Favorite --}}
@if(auth()->check()) @if(auth()->check())
<form <form
@@ -40,56 +55,117 @@
</div> </div>
{{-- Flight Content --}}
<div class="flight-content"> <div class="flight-content">
{{-- Title --}}
<div class="flight-title"> <div class="flight-title">
<div class="flight-title-info"> <div class="flight-title-info">
{{-- Airline Logo --}}
@if($flight->airline?->file?->path)
<img
src="{{ asset('storage/' . $flight->airline->file->path) }}"
alt="{{ $flight->airline->name }}"
>
@else
<img <img
src="{{ asset('assets/img/flight/airline-1.png') }}" src="{{ asset('assets/img/flight/airline-1.png') }}"
alt="" alt="{{ $flight->airline?->name ?? 'Airline' }}"
> >
@endif
<h4> <h4>
<a href="{{ route('flights.show', $flight->id) }}"> <a href="{{ route('flights.show', $flight->id) }}">
{{ $flight->departureAirport->city->name }} {{ $flight->departureAirport?->city?->name ?? '-' }}
<i class="far fa-exchange"></i> <i class="far fa-exchange"></i>
{{ $flight->arrivalAirport->city->name }} {{ $flight->arrivalAirport?->city?->name ?? '-' }}
</a> </a>
</h4> </h4>
</div> </div>
{{-- Date --}}
<p class="flight-date"> <p class="flight-date">
<i class="far fa-calendar-days"></i> <i class="far fa-calendar-days"></i>
{{ $flight->departure_time->toJalali()->format('Y/m/d H:i') }} {{ $flight->departure_time?->toJalali()->format('Y/m/d H:i') ?? '-' }}
</p> </p>
</div> </div>
{{-- Flight Type --}}
<div class="mb-2">
@if($flight->flight_type === \App\Enums\FlightType::DEPARTURE)
<span class="badge bg-primary">
یک‌طرفه
</span>
@elseif($flight->flight_type === \App\Enums\FlightType::RETURN)
<span class="badge bg-info">
برگشت
</span>
@elseif($flight->flight_type === \App\Enums\FlightType::ROUNDTRIP)
<span class="badge bg-warning">
رفت و برگشت
</span>
@else
<span class="badge bg-secondary">
نامشخص
</span>
@endif
</div>
{{-- Bottom --}}
<div class="flight-bottom"> <div class="flight-bottom">
{{-- Price --}}
<div class="flight-price"> <div class="flight-price">
از از
<span> <span>
{{ number_format($flight->price) }} تومان {{ number_format($flight->price) }}
تومان
</span> </span>
</div> </div>
{{-- Details --}}
<div class="flight-text-btn"> <div class="flight-text-btn">
<a href="{{ route('flights.show', $flight->id) }}"> <a href="{{ route('flights.show', $flight->id) }}">
نمایش جزئیات نمایش جزئیات
<i class="fas fa-arrow-left"></i> <i class="fas fa-arrow-left"></i>
</a> </a>
</div> </div>
@@ -99,4 +175,5 @@
</div> </div>
</div> </div>
</div> </div>
+73 -1
View File
@@ -3,7 +3,10 @@
use App\Http\Controllers\Admin\AdminController; use App\Http\Controllers\Admin\AdminController;
use App\Http\Controllers\Admin\AuthController; use App\Http\Controllers\Admin\AuthController;
use App\Http\Controllers\Admin\DashboardController; use App\Http\Controllers\Admin\DashboardController;
use App\Http\Controllers\FlightController; use App\Http\Controllers\Admin\FlightController;
use App\Http\Controllers\Admin\TourController;
use App\Http\Controllers\Admin\UserController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::prefix('admin')->name('admin.')->group(function () { Route::prefix('admin')->name('admin.')->group(function () {
@@ -97,6 +100,75 @@ Route::prefix('admin')->name('admin.')->group(function () {
}); });
}); });
Route::prefix('flights')
->name('flights.')
->controller(FlightController::class)
->group(function () {
Route::get('/', 'index')
->name('index')
->middleware('admin.permission:flight_view');
Route::get('create', 'create')
->name('create')
->middleware('admin.permission:flight_create');
Route::post('store', 'store')
->name('store')
->middleware('admin.permission:flight_create');
Route::prefix('{flight}')->group(function () {
Route::get('edit', 'edit')
->name('edit')
->middleware('admin.permission:flight_edit');
Route::put('update', 'update')
->name('update')
->middleware('admin.permission:flight_edit');
Route::delete('destroy', 'destroy')
->name('destroy')
->middleware('admin.permission:flight_delete');
});
});
Route::prefix('tours')
->name('tours.')
->controller(TourController::class)
->group(function () {
Route::get('/', 'index')
->name('index')
->middleware('admin.permission:tour_view');
Route::get('create', 'create')
->name('create')
->middleware('admin.permission:tour_create');
Route::post('store', 'store')
->name('store')
->middleware('admin.permission:tour_create');
Route::prefix('{tour}')->group(function () {
Route::get('edit', 'edit')
->name('edit')
->middleware('admin.permission:tour_edit');
Route::put('update', 'update')
->name('update')
->middleware('admin.permission:tour_edit');
Route::delete('destroy', 'destroy')
->name('destroy')
->middleware('admin.permission:tour_delete');
});
});
}); });