Почему должно быть : array , если возвращается объект?
Есть функция:
public static function getByArticleId(int $articleId): ?array
{
$db = Db::getInstance();
return $db->query("SELECT `comments`.*, `users`.`nickname` FROM `comments` JOIN `users` ON `users`.`id` = `comments`.`author_id` WHERE `comments`.`article_id` = :article_id ;", [':article_id' => $articleId], self::class);
}
Я понимаю, что возвращается объект класса self::class. то есть, по-моему, мы должны были написать так:
public static function getByArticleId(int $articleId): ?self
{
$db = Db::getInstance();
return $db->query("SELECT `comments`.*, `users`.`nickname` FROM `comments` JOIN `users` ON `users`.`id` = `comments`.`author_id` WHERE `comments`.`article_id` = :article_id ;", [':article_id' => $articleId], self::class);
}
Но это вызывает ошибку. Почему?
Ответы (1)
query под капотом дергает fetch, который всегда возвращает массив записей. Воспользуйтесь дебаггером чтобы посмотреть
ivashkevich 26.05.2020 в 10:24
Добавить новый ответ