/
ghx
/
TicketFlow
Обзор
Документация
Войти
/
ghx
/
TicketFlow
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
app/Http/Controllers/Admin/MovieController.php
88 строк
3 KB
osnov
.
26 июн 2026, 11:56
26 июн 2026, 11:56
dc2de34
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\Genre; use App\Models\Movie; use Illuminate\Http\Request; class MovieController extends Controller { public function index() { $movies = Movie::withCount('sessions')->latest()->paginate(15); return view('admin.movies.index', compact('movies')); } public function create() { $genres = Genre::orderBy('name')->get(); return view('admin.movies.create', compact('genres')); } public function store(Request $request) { $validated = $request->validate([ 'title' => 'required|string|max:255', 'description' => 'nullable|string', 'poster' => 'nullable|string|max:500', 'time' => 'required|integer|min:1', 'age_rating' => 'nullable|string|max:10', 'release_date' => 'nullable|date', 'is_active' => 'boolean', 'genres' => 'nullable|array', 'genres.*' => 'exists:genres,id', ]); $validated['is_active'] = $request->boolean('is_active', true); $genres = $validated['genres'] ?? []; unset($validated['genres']); $movie = Movie::create($validated); $movie->genres()->sync($genres); return redirect()->route('admin.movies.index')->with('success', 'Фильм добавлен в афишу.'); } public function edit(Movie $movie) { $genres = Genre::orderBy('name')->get(); $movie->load('genres'); return view('admin.movies.edit', compact('movie', 'genres')); } public function update(Request $request, Movie $movie) { $validated = $request->validate([ 'title' => 'required|string|max:255', 'description' => 'nullable|string', 'poster' => 'nullable|string|max:500', 'time' => 'required|integer|min:1', 'age_rating' => 'nullable|string|max:10', 'release_date' => 'nullable|date', 'is_active' => 'boolean', 'genres' => 'nullable|array', 'genres.*' => 'exists:genres,id', ]); $validated['is_active'] = $request->boolean('is_active'); $genres = $validated['genres'] ?? []; unset($validated['genres']); $movie->update($validated); $movie->genres()->sync($genres); return redirect()->route('admin.movies.index')->with('success', 'Фильм обновлён.'); } public function destroy(Movie $movie) { $movie->delete(); return redirect()->route('admin.movies.index')->with('success', 'Фильм удалён.'); } }