верно, но я вижу ты пыталась сделать на примере своего кода из CinemaController.php, но ComeOutController.php тебе больше поможет
public function execute() {
$view = new Film();
$result = $view->render();
return $result;
}
show там не нужна ибо ты уже переписала все на render. С контроллером все Если все хорошо, то при на new Film(); то тебя должно редиректнуть на твою вьюху. К ней и перейдем.
Там на примере так же твоего кода нужно чет такое.
class Film extends AbstractBlock implements ViewInterface
{
private $id;
public function setFilm(int $id): Film {
$this->id = $id;
return $this;
}
protected function getVars(): array
{
$id = $this->id ?? (int) $_GET['id'];
$filmService = new FilmService();
$temp = $filmService->findOneFilm($id);
return [
'film' => $filmService->findOneFilm($id)
];
}
}
В самом темплейте фильма поправь вот так.
<?php /** @var \App\Models\Films $film */ ?>
<ul>
<li>Имя: <?= $film->getName() ?></li>
</ul>
а в темплейте comeout сделай
<?php /** @var \App\Models\Films[] $comeOut */ ?>
<?php foreach ($comeOut as $film): ?>
<li><a href="<?= "film/?id=" . $film->getId() ?>"><?= $film->getName() ?></a></li>
<?php endforeach; ?>
Теперь, по идее должно по нажатию переходить на урл типа
https://site.com/film/?id=1
Ну и там теперь в дебагере посмотри какие у тебя еще поля приходят и добавь их для полноценной картины о фильме.
вы эта. хватит уже кодом какать в чат
Обсуждают сегодня