git commit "add user reservations and complete profile features"
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Reservation;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class ReservationController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$reservations = Reservation::
|
||||
where('user_id', Auth::id())
|
||||
->latest()
|
||||
->get();
|
||||
|
||||
|
||||
return view('account.users.Reservation.index', compact('reservations'));
|
||||
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
|
||||
Reservation::create([
|
||||
'user_id' => Auth::id(),
|
||||
'reservable_id' => $request->reservable_id,
|
||||
'reservable_type' => $request->reservable_type,
|
||||
'price' => $request->price,
|
||||
'status' => 'pending'
|
||||
]);
|
||||
|
||||
return redirect()->route('users.reservations.index')->with('success','رزرو شما ثبت شد.'); }
|
||||
|
||||
}
|
||||
@@ -76,6 +76,13 @@ class Flight extends Model
|
||||
{
|
||||
return $this->morphMany(Favorite::class, 'favoritable');
|
||||
}
|
||||
public function reservations()
|
||||
{
|
||||
return $this->morphMany(
|
||||
Reservation::class,
|
||||
'reservable'
|
||||
);
|
||||
}
|
||||
|
||||
#[Scope]
|
||||
public function applySearch(Builder $query, array $filters): void
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class Reservation
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $user_id
|
||||
* @property int $reservable_id
|
||||
* @property string $reservable_type
|
||||
* @property float $price
|
||||
* @property string $status
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
*
|
||||
* @package App\Models
|
||||
*/
|
||||
class Reservation extends Model
|
||||
{
|
||||
protected $table = 'reservations';
|
||||
|
||||
public static $snakeAttributes = false;
|
||||
|
||||
|
||||
protected $casts = [
|
||||
'user_id' => 'int',
|
||||
'reservable_id' => 'int',
|
||||
'price' => 'float',
|
||||
];
|
||||
|
||||
|
||||
protected $fillable = [
|
||||
'user_id',
|
||||
'reservable_id',
|
||||
'reservable_type',
|
||||
'price',
|
||||
'status'
|
||||
];
|
||||
|
||||
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo(User::class);
|
||||
}
|
||||
|
||||
|
||||
public function reservable()
|
||||
{
|
||||
return $this->morphTo();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -66,4 +66,8 @@ class Tour extends Model
|
||||
{
|
||||
return $this->morphMany(Favorite::class, 'favoritable');
|
||||
}
|
||||
public function reservations()
|
||||
{
|
||||
return $this->morphMany(Reservation::class, 'reservable');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user