55 lines
1.3 KiB
PHP
55 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Requests\StoreProject;
|
|
use App\Http\Requests\UpdateProject;
|
|
use App\Models\Project;
|
|
use App\Models\Ticket;
|
|
|
|
class ProjectController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$projects = Project::all();
|
|
return view('project.index', compact('projects'));
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
return view('project.create');
|
|
}
|
|
|
|
public function store(StoreProject $request)
|
|
{
|
|
$project = new Project($request->validated());
|
|
$project->saveOrFail();
|
|
|
|
return redirect()->route('project.index');
|
|
}
|
|
|
|
public function edit(Project $project)
|
|
{
|
|
return view('project.edit', [
|
|
'project' => $project
|
|
]);
|
|
}
|
|
|
|
public function update(UpdateProject $request, Project $project)
|
|
{
|
|
$project->fill($request->validated());
|
|
$project->saveOrFail();
|
|
|
|
return redirect()->back()->with('success', 'Modifications enregistrées !');
|
|
}
|
|
|
|
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.");
|
|
}
|
|
$project->delete();
|
|
return redirect()->route('project.index');
|
|
}
|
|
}
|