48 lines
1.2 KiB
PHP
48 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\Admin\ProjectRequest;
|
|
use App\Models\Project;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Inertia\Inertia;
|
|
use Inertia\Response;
|
|
|
|
class ProjectController extends Controller
|
|
{
|
|
public function index(): Response
|
|
{
|
|
return Inertia::render('admin/projects/index', [
|
|
'projects' => Project::query()->latestFirst()->get(),
|
|
]);
|
|
}
|
|
|
|
public function store(ProjectRequest $request): RedirectResponse
|
|
{
|
|
Project::query()->create($request->validated());
|
|
|
|
Inertia::flash('toast', ['type' => 'success', 'message' => 'Proyek ditambahkan.']);
|
|
|
|
return back();
|
|
}
|
|
|
|
public function update(ProjectRequest $request, Project $project): RedirectResponse
|
|
{
|
|
$project->update($request->validated());
|
|
|
|
Inertia::flash('toast', ['type' => 'success', 'message' => 'Proyek diperbarui.']);
|
|
|
|
return back();
|
|
}
|
|
|
|
public function destroy(Project $project): RedirectResponse
|
|
{
|
|
$project->delete();
|
|
|
|
Inertia::flash('toast', ['type' => 'success', 'message' => 'Proyek dihapus.']);
|
|
|
|
return back();
|
|
}
|
|
}
|