ldc-supportweb/app/Http/Controllers/ProjectController.php

61 lines
1.4 KiB
PHP
Raw Normal View History

2020-11-18 10:23:51 +01:00
<?php
namespace App\Http\Controllers;
2021-04-18 10:43:36 +02:00
use App\Http\Requests\StoreProject;
use App\Http\Requests\UpdateProject;
2020-11-18 10:23:51 +01:00
use App\Models\Project;
use App\Models\Ticket;
class ProjectController extends Controller
{
2021-04-18 20:31:07 +02:00
public function __construct()
{
$this->authorizeResource(Project::class, 'project');
}
2021-04-18 10:43:36 +02:00
public function index()
{
2020-11-18 10:23:51 +01:00
$projects = Project::all();
return view('project.index', compact('projects'));
}
2021-04-18 10:43:36 +02:00
public function create()
{
2020-11-18 10:23:51 +01:00
return view('project.create');
}
2021-04-18 10:43:36 +02:00
public function store(StoreProject $request)
{
$project = new Project($request->validated());
$project->saveOrFail();
2020-11-18 10:23:51 +01:00
2021-04-18 10:43:36 +02:00
return redirect()->route('project.index');
2020-11-18 10:23:51 +01:00
}
2021-04-18 10:43:36 +02:00
public function edit(Project $project)
{
return view('project.edit', [
'project' => $project
]);
2020-11-18 10:23:51 +01:00
}
2021-04-18 10:43:36 +02:00
public function update(UpdateProject $request, Project $project)
{
$project->fill($request->validated());
$project->saveOrFail();
2020-11-18 10:23:51 +01:00
return redirect()->back()->with('success', 'Modifications enregistrées !');
}
2021-04-18 10:43:36 +02:00
public function destroy(Project $project)
{
if (Ticket::where('project_id', $project->id)->count()) {
return redirect()->back()
->withErrors("Ce projet ne peut être supprimer, des tickets lui sont encore liés.");
}
2020-11-18 10:23:51 +01:00
$project->delete();
2021-04-18 10:43:36 +02:00
return redirect()->route('project.index');
2020-11-18 10:23:51 +01:00
}
}