Отображение таблиц через PHP

Главные вкладки

Аватар пользователя nop nop 12 апреля в 15:48

Добрый всем день.
Пытаюсь разобраться в 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,
)
?>

Но нигде не написано как эту таблицу вывести на экран)) Тыкните пожалуйста носом

Лучший ответ

Аватар пользователя drupal20 drupal20 15 апреля в 11:40
nop wrote: Я установил tablesort_example через расширения



tablesort_example.routing.yml - не смотрели? Там написано: /examples/tablesort-example

Examples - это модуль c примерами для разработчиков Drupal.

nop wrote: Но а как мне через него вывести на странице таблицу?))



Код выдачи тут: tablesort_example/src/Controller/TableSortExampleController.php

Комментарии

Аватар пользователя jura12 jura12 12 апреля в 19:41

вам поможет этот пример?:

<?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

Аватар пользователя jura12 jura12 13 апреля в 9:51

Создайте пользовательскую страницу с помощью контроллера
Создание простой страницы в Drupal состоит из двух шагов. Сначала вам нужно объявить маршрутизацию в <имя_модуля>.routing.yml. Во-вторых, вам нужно добавить контроллер, который возвращает тело страницы в /src/Controller/ExampleController.php

Аватар пользователя nop nop 15 апреля в 11:27

jura12 wrote: вам поможет этот пример?:

drupal20 wrote: Посмотри modules/tablesort_example в Examples.

А через PHP Filter я прям на создаваемой странице не могу создать таблицу средствами друпала? Обязательно создавать для этого контроллер?

Но вопрос всё равно актуален. Я установил tablesort_example через расширения. Но а как мне через него вывести на странице таблицу?))

Аватар пользователя drupal20 drupal20 15 апреля в 11:40
nop wrote: Я установил tablesort_example через расширения



tablesort_example.routing.yml - не смотрели? Там написано: /examples/tablesort-example

Examples - это модуль c примерами для разработчиков Drupal.

nop wrote: Но а как мне через него вывести на странице таблицу?))



Код выдачи тут: tablesort_example/src/Controller/TableSortExampleController.php

Аватар пользователя nop nop 16 апреля в 14:48

Спасибо, разобрался.
А как мне вывести что-то помимо таблицы?
Контроллер возвращает, получается, таблицу и заголовок над ней:

$build = [
'#markup' => '' . t('The layout here is a themed as a table
that is sortable by clicking the header name.') . '',
];
$build['tablesort_table'] = [
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
];

А если я хочу ниже вывести что-то ещё?