Загрузить категорию с идентификатором в bootstrap.php Shopware 5

в моем bootstrap.php я пытаюсь загрузить категорию со специальным идентификатором. Это не совсем работает.

    public function getCatFromDb($idCat){
    /** @var \Doctrine\DBAL\Connection $connection */
    $connection = $connection->get('dbal_connection');
    $sql = 'SELECT * FROM s_categories WHERE id=$idCat';
    $result = $connection->query($sql)->fetch();
    var_dump($result);

    return $result;
}

Кто-нибудь может заметить ошибку? Заранее спасибо!


person Langer.197    schedule 28.06.2017    source источник
comment
Разобрался в ошибке. Поместите $ connection = $ container- ›get ('dbal_connection'); и $ sql = 'ВЫБРАТЬ * ИЗ s_categories WHERE id = $ idCat';   -  person Langer.197    schedule 28.06.2017


Ответы (2)


Вы должны использовать ModelManager, чтобы получить Category.

/** @var ModelManager $modelManager */
$modelManager = Shopware()->Container()->get('models');
// you could use this, too
// $modelManager = $this->container->get('models');
/** @var Category $category */
$category = $modelManager->getRepository(Category::class)->find($id);
person Roman    schedule 29.06.2017

$connection = $container->get('dbal_connection');
$sql = 'SELECT * FROM s_categories WHERE id="$idCat"';

Контейнер вместо второго подключения и $ idCat в кавычках.

person Langer.197    schedule 28.06.2017