То, что я хочу сделать, это иметь одну страницу, на которой перечислены некоторые данные из моей базы данных (данные отделены от Болта).
Я посмотрел на расширения, но я не вижу способа сделать «страницу» как таковую, только создать «фрагменты». Но фрагменты фактически не отображаются в области содержимого, их можно добавить только сразу после <body>
тег или в <head>
, Также похоже, что они появляются на каждой странице, а не на странице.
Можно ли запустить какой-нибудь специальный код PHP на странице, чтобы извлечь некоторые данные из базы данных и отобразить их? У кого-нибудь есть голый пример?
Это то, для чего нужны расширения, но фрагменты не то, что вам нужно.
Bolt является приложением Silex и поставляется с поставщиком Doctrine DBAL, так что вы можете просто использовать $app['db']
чтобы дать вам доступ к \Doctrine\DBAL\Connection
объект, который вы можете использовать для запроса вашей таблицы, например,
$resultArray = $this->app['db']->createQueryBuilder()
->select('*')
->from($tableName)
->where('my_column_1 = :my_column_value_1')
->andWhere('my_column_2 = :my_column_value_2')
->orderBy('my_column_3', 'DESC')
->setParameter(':my_column_value_1', $value1)
->setParameter(':my_column_value_1', $value2)
->execute()
->fetch(\PDO::FETCH_ASSOC);
Затем вы можете делать с данными то, что хотите, и отображать их в Twig, как считаете нужным.
Существует тонна документации по создание расширений с функциями Twig что вы можете положить в шаблон {{ my_twig_function() }}
Других решений пока нет …