мы пытаемся обратиться к свойству объекта, которого не существует. В данном случае, скорее всего, проблема в том, что не удалось найти пост с указанным айди в базе данных.
Чтобы избежать этой ошибки, можно добавить проверку на существование поста перед его отображением:
public function actionPost($id)
{
$post = Post::findById($id);
if (!$post) {
throw new NotFoundHttpException('Запрошенный пост не найден.');
}
return $this->render('post', ['post' => $post]);
}
Таким образом, если пост не найден, будет выброшено исключение NotFoundHttpException с соответствующим сообщением. В представлении post.php также можно добавить проверку на существование поста:
<?php if ($post): ?>
<div class="site-post">
<h1><?= Html::encode(htmlspecialchars($this->title)) ?></h1>
<h2><?php echo htmlspecialchars($post->title) ?></h2>
<img src="<?php echo $post->image ?>" width="200" height="200">
</div>
<?php else: ?>
<p>Запрошенный пост не найден.</p>
<?php endif; ?>
Таким образом, если пост не найден, будет отображено соответствующее сообщение.
А вы прям неплохо редиректите)
Обсуждают сегодня