Files
movies/app/Http/Controllers/CelebrityController.php
T

51 lines
1.3 KiB
PHP
Raw Normal View History

2025-01-29 22:33:09 +02:00
<?php
namespace App\Http\Controllers;
2025-01-29 22:52:22 +02:00
use App\Models\Person;
2025-01-29 22:33:09 +02:00
use Illuminate\Http\Request;
2025-02-10 01:58:12 +02:00
use Illuminate\Support\Facades\DB;
2025-01-29 22:33:09 +02:00
class CelebrityController extends Controller
{
2025-02-02 14:23:11 +02:00
public function index()
{
$celebrities = Person::paginate(25);
return view('celebrity.index', compact('celebrities'));
}
2025-01-29 22:52:22 +02:00
public function show(string $slug)
{
$celebrity = Person::where('slug', $slug)->first();
2025-02-10 01:58:12 +02:00
// movies by job
$movies = DB::table('movies')
->leftJoin('movie_cast', 'movie_cast.movie_id', '=', 'movies.id')
->where('movie_cast.person_id', '=', $celebrity->id)
->get();
// movies crew
$moviesByDepartments = [];
foreach ($movies as $movie) {
$moviesByDepartments[$movie->known_for_department][]= $movie;
}
$showsByDepartment = [];
$shows = DB::table('shows')
->leftJoin('show_cast', 'show_cast.show_id', '=', 'shows.id')
->where('show_cast.person_id', '=', $celebrity->id)
->get();
foreach ($shows as $show) {
$showsByDepartment[$show->known_for_department][]= $show;
}
return view('celebrity.show', compact('celebrity', 'moviesByDepartments', 'showsByDepartment'));
2025-01-29 22:52:22 +02:00
}
2025-01-29 22:33:09 +02:00
}