85 lines
2.1 KiB
PHP
85 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\Tours\TourUpdatePostRequest;
|
|
use App\Models\Airport;
|
|
use App\Models\Tour;
|
|
use Hekmatinasser\Verta\Verta;
|
|
use Illuminate\Http\Request;
|
|
|
|
class TourController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
|
|
$tours = Tour::with([
|
|
'file',
|
|
'originAirport',
|
|
'destinationAirport',
|
|
'tour_details'
|
|
])
|
|
->latest()
|
|
->paginate(10);
|
|
|
|
return view('admin.tours.index', compact('tours'));
|
|
}
|
|
public function edit(Tour $tour)
|
|
{
|
|
$airports = Airport::all();
|
|
|
|
$tour->load([
|
|
'tour_details',
|
|
'originAirport',
|
|
'destinationAirport',
|
|
'file',
|
|
]);
|
|
|
|
return view('admin.tours.edit', compact('tour' , 'airports'));
|
|
}
|
|
|
|
/**
|
|
* @throws \Exception
|
|
*/
|
|
public function update(TourUpdatePostRequest $request, Tour $tour)
|
|
{
|
|
$tour->update([
|
|
'title' => $request->title,
|
|
'tour_type' => $request->tour_type,
|
|
'summary' => $request->summary,
|
|
'description' => $request->description,
|
|
'origin_airports_id' => $request->origin_airports_id,
|
|
'destination_airports_id' => $request->destination_airports_id,
|
|
]);
|
|
|
|
$tourDetail = $tour->tour_details()->first();
|
|
|
|
if ($tourDetail) {
|
|
|
|
$startDate = Verta::parseFormat('Y/m/d', $request->start_date)->datetime();
|
|
|
|
$endDate = Verta::parseFormat('Y/m/d', $request->end_date)->datetime();
|
|
|
|
$tourDetail->update([
|
|
'start_date' => $startDate,
|
|
'end_date' => $endDate,
|
|
]);
|
|
}
|
|
|
|
return redirect()
|
|
->route('admin.tours.index')
|
|
->with('success', 'تور با موفقیت بروزرسانی شد.');
|
|
}
|
|
public function destroy(Tour $tour)
|
|
{
|
|
$tour->tour_details()->delete();
|
|
|
|
$tour->delete();
|
|
|
|
return redirect()
|
|
->route('admin.tours.index')
|
|
->with('success', 'تور با موفقیت حذف شد.');
|
|
}
|
|
}
|