Добрый всем день.
Пытаюсь разобраться в Drupal 10. Задача простая - я создаю страницу, в которой через PHP осуществляю запрос к бд. Не могу понять как мне сгенерировать и вывести таблицу средствами Drupal.
И в гугле, и в примерах, вижу простой php код сборки структуры таблицы:
<?php
$header = ['#','Name', 'Mail'];
$data = [
[1,'Name 1', 'Mail1@example.com'],
[2,'Name N°2', 'second@example.com'],
];
$output[] = array(
'#theme' => 'table',
'#caption' => 'The table caption / Title',
'#header' => $header,
'#rows' => $data,
)
?>
Но нигде не написано как эту таблицу вывести на экран)) Тыкните пожалуйста носом
Комментарии
вам поможет этот пример?:
<?php
/**
* @file
* Contains \Drupal\hello_world\Controller\HelloController.
*/
namespace Drupal\hello_world\Controller;
use Drupal\Core\Controller\ControllerBase;
class
HelloController extends ControllerBase{public function content() {
return array(
'#type' => 'markup',
'#markup' => $this->t('Hello, World!'),
);
}
}
?>
custom/hello_world/src/Controller/HelloController.php
Посмотри modules/tablesort_example в Examples.
Создайте пользовательскую страницу с помощью контроллера
Создание простой страницы в Drupal состоит из двух шагов. Сначала вам нужно объявить маршрутизацию в <имя_модуля>.routing.yml. Во-вторых, вам нужно добавить контроллер, который возвращает тело страницы в /src/Controller/ExampleController.php
А через PHP Filter я прям на создаваемой странице не могу создать таблицу средствами друпала? Обязательно создавать для этого контроллер?
Но вопрос всё равно актуален. Я установил tablesort_example через расширения. Но а как мне через него вывести на странице таблицу?))
tablesort_example.routing.yml
- не смотрели? Там написано:/examples/tablesort-example
Examples - это модуль c примерами для разработчиков Drupal.
Код выдачи тут: tablesort_example/src/Controller/TableSortExampleController.php
Спасибо, разобрался.
А как мне вывести что-то помимо таблицы?
Контроллер возвращает, получается, таблицу и заголовок над ней:
А если я хочу ниже вывести что-то ещё?
А что именно? В вашем коде есть подсказки: #markup, #theme. Можно что угодно...