podcast = (new PodcastModel())->getPodcastById((int) $params[0])) instanceof Podcast ) { unset($params[0]); return $this->{$method}(...$params); } throw PageNotFoundException::forPageNotFound(); } public function index(): string { helper('form'); $data = [ 'podcast' => $this->podcast, 'podcastPersons' => (new PersonModel())->getPodcastPersons($this->podcast->id), 'personOptions' => (new PersonModel())->getPersonOptions(), 'taxonomyOptions' => (new PersonModel())->getTaxonomyOptions(), ]; replace_breadcrumb_params([ 0 => $this->podcast->at_handle, ]); return view('podcast/persons', $data); } public function attemptAdd(): RedirectResponse { $rules = [ 'persons' => 'required', ]; if (! $this->validate($rules)) { return redirect() ->back() ->withInput() ->with('errors', $this->validator->getErrors()); } (new PersonModel())->addPodcastPersons( $this->podcast->id, $this->request->getPost('persons'), $this->request->getPost('roles') ?? [], ); return redirect()->back(); } public function remove(string $personId): RedirectResponse { (new PersonModel())->removePersonFromPodcast($this->podcast->id, (int) $personId); return redirect()->back(); } }