From 8de53f3ec2f243f8db98435e886036d661431978 Mon Sep 17 00:00:00 2001 From: DoarMihai Date: Tue, 28 Jan 2025 02:10:44 +0200 Subject: [PATCH] some progress --- app/Livewire/MoviePage/Tabs/Cast.php | 1 - app/Livewire/MoviePage/Tabs/Crew.php | 24 +++++++++++++++ app/Models/Movie.php | 2 +- .../livewire/movie-page/tabs/crew.blade.php | 30 ++++++++++++++++++- resources/views/movie/show.blade.php | 4 ++- 5 files changed, 57 insertions(+), 4 deletions(-) diff --git a/app/Livewire/MoviePage/Tabs/Cast.php b/app/Livewire/MoviePage/Tabs/Cast.php index a49a554..dba6108 100644 --- a/app/Livewire/MoviePage/Tabs/Cast.php +++ b/app/Livewire/MoviePage/Tabs/Cast.php @@ -32,6 +32,5 @@ class Cast extends Component ]; } $this->peopleByDepartment = $peopleByDepartment; - } } diff --git a/app/Livewire/MoviePage/Tabs/Crew.php b/app/Livewire/MoviePage/Tabs/Crew.php index 0a85649..05d7c08 100644 --- a/app/Livewire/MoviePage/Tabs/Crew.php +++ b/app/Livewire/MoviePage/Tabs/Crew.php @@ -2,12 +2,36 @@ namespace App\Livewire\MoviePage\Tabs; +use App\Models\Movie; +use App\Models\Person; use Livewire\Component; class Crew extends Component { + public $movie; + public $peopleByDepartment; + public function render() { return view('livewire.movie-page.tabs.crew'); } + + public function mount() + { + $this->movie = Movie::with('crewList')->where('id', $this->movie->id)->first(); + + $peopleByDepartment = []; + + foreach ($this->movie->crewList as $castMember) { + + if (!isset($peopleByDepartment[$castMember->pivot->department])) { + $peopleByDepartment[$castMember->pivot->department] = []; + } + $peopleByDepartment[$castMember->pivot->department][] = [ + Person::find($castMember->pivot->person_id), + $castMember->pivot->job, + ]; + } + $this->peopleByDepartment = $peopleByDepartment; + } } diff --git a/app/Models/Movie.php b/app/Models/Movie.php index c4bb82b..b753b06 100644 --- a/app/Models/Movie.php +++ b/app/Models/Movie.php @@ -56,7 +56,7 @@ class Movie extends Model public function crewList() { - return $this->belongsToMany(Person::class, 'movie_crew', 'movie_id', 'person_id'); + return $this->belongsToMany(Person::class, 'movie_crew', 'movie_id', 'person_id')->withPivot('department', 'job'); } public function images() diff --git a/resources/views/livewire/movie-page/tabs/crew.blade.php b/resources/views/livewire/movie-page/tabs/crew.blade.php index bc7718c..67506b7 100644 --- a/resources/views/livewire/movie-page/tabs/crew.blade.php +++ b/resources/views/livewire/movie-page/tabs/crew.blade.php @@ -1,3 +1,31 @@
- {{-- A good traveler has no fixed plans and is not intent upon arriving. --}} +
+ @foreach($peopleByDepartment as $department => $personInfo) +
+ {{ $department }} +
+
+
+ @foreach($personInfo as [$person, $character]) +
+
+ @if($person->profile_path == null) + @if($person->gender == 2) + + @else + + @endif + @else + + @endif + {{ $person->name }}
+ {{ $character }} +
+
+ @endforeach +
+
+
+ @endforeach +
diff --git a/resources/views/movie/show.blade.php b/resources/views/movie/show.blade.php index 25961b9..ed65794 100644 --- a/resources/views/movie/show.blade.php +++ b/resources/views/movie/show.blade.php @@ -60,7 +60,9 @@
@livewire(App\Livewire\MoviePage\Tabs\Cast::class, ['movie' => $movie])
-
...
+
+ @livewire(App\Livewire\MoviePage\Tabs\Crew::class, ['movie' => $movie]) +
...