Spec-Zone.ru › CodeIgniter 4

Класс HTML Таблица

Класс Таблица предоставляет методы, которые позволяют вам автоматически генерировать HTML таблицы из массивов или наборов результатов базы данных.

  • Использование класса Таблица
    • Инициализация класса
    • Примеры
    • Изменение внешнего вида таблицы
  • Справочник по классу

Использование класса Таблица

Инициализация класса

Класс Table не предоставляется как сервис и должен быть инициализирован стандартным образом, например:

$table = new \CodeIgniter\View\Table();

Примеры

Вот пример, показывающий, как создать таблицу из многомерного массива. Обратите внимание, что первый индекс массива станет заголовком таблицы (или вы можете установить свои собственные заголовки, используя метод setHeading() , описанный в справочнике по функциям ниже).

$table = new \CodeIgniter\View\Table();

$data = [
    ['Name', 'Color', 'Size'],
    ['Fred', 'Blue',  'Small'],
    ['Mary', 'Red',   'Large'],
    ['John', 'Green', 'Medium'],
];

echo $table->generate($data);

Вот пример таблицы, созданной из результата запроса к базе данных. Класс таблицы автоматически сгенерирует заголовки на основе имён таблиц (или вы можете установить свои собственные заголовки, используя метод setHeading() , описанный в справочнике по классу ниже).

$table = new \CodeIgniter\View\Table();

$query = $db->query('SELECT * FROM my_table');

echo $table->generate($query);

Вот пример того, как можно создать таблицу, используя отдельные параметры:

$table = new \CodeIgniter\View\Table();

$table->setHeading('Name', 'Color', 'Size');

$table->addRow('Fred', 'Blue', 'Small');
$table->addRow('Mary', 'Red', 'Large');
$table->addRow('John', 'Green', 'Medium');

echo $table->generate();

Вот тот же пример, только вместо отдельных параметров используются массивы:

$table = new \CodeIgniter\View\Table();

$table->setHeading(array('Name', 'Color', 'Size'));

$table->addRow(['Fred', 'Blue', 'Small']);
$table->addRow(['Mary', 'Red', 'Large']);
$table->addRow(['John', 'Green', 'Medium']);

echo $table->generate();

Изменение внешнего вида таблицы

Класс Таблица позволяет вам задать шаблон таблицы, с помощью которого вы можете указать дизайн вашего макета. Вот прототип шаблона:

$template = [
    'table_open'         => '<table border="0" cellpadding="4" cellspacing="0">',

    'thead_open'         => '<thead>',
    'thead_close'        => '</thead>',

    'heading_row_start'  => '<tr>',
    'heading_row_end'    => '</tr>',
    'heading_cell_start' => '<th>',
    'heading_cell_end'   => '</th>',

    'tfoot_open'         => '<tfoot>',
    'tfoot_close'        => '</tfoot>',

    'footing_row_start'  => '<tr>',
    'footing_row_end'    => '</tr>',
    'footing_cell_start' => '<td>',
    'footing_cell_end'   => '</td>',

    'tbody_open'         => '<tbody>',
    'tbody_close'        => '</tbody>',

    'row_start'          => '<tr>',
    'row_end'            => '</tr>',
    'cell_start'         => '<td>',
    'cell_end'           => '</td>',

    'row_alt_start'      => '<tr>',
    'row_alt_end'        => '</tr>',
    'cell_alt_start'     => '<td>',
    'cell_alt_end'       => '</td>',

    'table_close'        => '</table>'
];

$table->setTemplate($template);

Примечание

Вы заметите, что в шаблоне есть два набора блоков "строка". Это позволяет создавать чередующиеся цвета строк или элементы дизайна, которые чередуются с каждой итерацией данных строки.

Вы НЕ обязаны предоставлять полный шаблон. Если вам нужно изменить только части макета, вы можете просто предоставить эти элементы. В этом примере изменяется только открывающий тег таблицы:

$template = [
    'table_open' => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">'
];

$table->setTemplate($template);

Вы также можете установить значения по умолчанию, передав массив параметров шаблона в конструктор класса Table.:

$customSettings = [
    'table_open' => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">'
];

$table = new \CodeIgniter\View\Table($customSettings);

Справочник по классу

class Table
$function = null

Позволяет указать нативную функцию PHP или объект массива функций, которые будут применяться ко всем данным ячейки.

$table = new \CodeIgniter\View\Table();

$table->setHeading('Name', 'Color', 'Size');
$table->addRow('Fred', '<strong>Blue</strong>', 'Small');

$table->function = 'htmlspecialchars';
echo $table->generate();

В приведённом выше примере все данные ячейки будут переданы в функцию PHP htmlspecialchars(), что приведёт к:

<td>Fred</td><td>&lt;strong&gt;Blue&lt;/strong&gt;</td><td>Small</td>
generate([$tableData = null])
Параметры:
  • $tableData (mixed) – Данные для заполнения строк таблицы
Возвращает:

HTML таблица

Тип возвращаемого значения:

string

Возвращает строку, содержащую сгенерированную таблицу. Принимает необязательный параметр, который может быть массивом или объектом результата базы данных.

setCaption($caption)
Параметры:
  • $caption (string) – Заголовок таблицы
Возвращает:

Экземпляр таблицы (цепочка методов)

Тип возвращаемого значения:

Table

Позволяет добавить заголовок к таблице.

$table->setCaption('Colors');
setHeading([$args = [][, ...]])
Параметры:
  • $args (mixed) – Массив или несколько строк, содержащие заголовки столбцов таблицы
Возвращает:

Экземпляр таблицы (цепочка методов)

Тип возвращаемого значения:

Table

Позволяет установить заголовок таблицы. Вы можете передать массив или отдельные параметры:

$table->setHeading('Name', 'Color', 'Size'); // or

$table->setHeading(['Name', 'Color', 'Size']);
setFooting([$args = [][, ...]])
Параметры:
  • $args (mixed) – Массив или несколько строк, содержащие значения подвала таблицы
Возвращает:

Экземпляр таблицы (цепочка методов)

Тип возвращаемого значения:

Table

Позволяет установить подвал таблицы. Вы можете передать массив или отдельные параметры:

$table->setFooting('Subtotal', $subtotal, $notes); // or

$table->setFooting(['Subtotal', $subtotal, $notes]);
addRow([$args = [][, ...]])
Параметры:
  • $args (mixed) – Массив или несколько строк, содержащие значения строки
Возвращает:

Экземпляр таблицы (цепочка методов)

Тип возвращаемого значения:

Table

Позволяет добавить строку в таблицу. Вы можете передать массив или отдельные параметры:

$table->addRow('Blue', 'Red', 'Green'); // or

$table->addRow(['Blue', 'Red', 'Green']);

Если требуется установить атрибуты тега отдельной ячейки, можно использовать ассоциативный массив для этой ячейки. Ассоциативный ключ data определяет данные ячейки. Любые другие пары ключ => значение добавляются как атрибуты тега key=’val’:

$cell = ['data' => 'Blue', 'class' => 'highlight', 'colspan' => 2];
$table->addRow($cell, 'Red', 'Green');

// generates
// <td class='highlight' colspan='2'>Blue</td><td>Red</td><td>Green</td>
makeColumns([$array = [][, $columnLimit = 0]])
Параметры:
  • $array (array) – Массив, содержащий данные нескольких строк
  • $columnLimit (int) – Количество столбцов в таблице
Возвращает:

Массив HTML столбцов таблицы

Тип возвращаемого значения:

array

Этот метод принимает одномерный массив в качестве входных данных и создаёт многомерный массив с глубиной, равной требуемому количеству столбцов. Это позволяет отобразить один массив со многими элементами в таблице с фиксированным количеством столбцов. Рассмотрим этот пример:

$list = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve'];

$newList = $table->makeColumns($list, 3);

$table->generate($newList);

// Generates a table with this prototype

<table border="0" cellpadding="4" cellspacing="0">
<tr>
<td>one</td><td>two</td><td>three</td>
</tr><tr>
<td>four</td><td>five</td><td>six</td>
</tr><tr>
<td>seven</td><td>eight</td><td>nine</td>
</tr><tr>
<td>ten</td><td>eleven</td><td>twelve</td></tr>
</table>
setTemplate($template)
Параметры:
  • $template (array) – Ассоциативный массив, содержащий значения шаблона
Возвращаемое значение:

true при успехе, false при ошибке

Тип возвращаемого значения:

bool

Позволяет установить шаблон. Можно передать полный или частичный шаблон.

$template = [
    'table_open' => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">'
];

$table->setTemplate($template);
setEmpty($value)
Параметры:
  • $value (mixed) – Значение для пустых ячеек
Возвращаемое значение:

Экземпляр таблицы (цепление методов)

Тип возвращаемого значения:

Table

Позволяет установить значение по умолчанию для использования в пустых ячейках таблицы. Например, можно установить неразрывный пробел:

$table->setEmpty("&nbsp;");
clear()
Возвращаемое значение: Экземпляр таблицы (цепление методов)
Тип возвращаемого значения: Table

Позволяет очистить заголовок таблицы, данные строк и подпись. Если нужно отобразить несколько таблиц с разными данными, необходимо вызывать этот метод после генерации каждой таблицы, чтобы очистить информацию о предыдущей таблице.

Пример

$table = new \CodeIgniter\View\Table();

$table->setCaption('Preferences')
    ->setHeading('Name', 'Color', 'Size')
    ->addRow('Fred', 'Blue', 'Small')
    ->addRow('Mary', 'Red', 'Large')
    ->addRow('John', 'Green', 'Medium');

echo $table->generate();

$table->clear();

$table->setCaption('Shipping')
    ->setHeading('Name', 'Day', 'Delivery')
    ->addRow('Fred', 'Wednesday', 'Express')
    ->addRow('Mary', 'Monday', 'Air')
    ->addRow('John', 'Saturday', 'Overnight');

echo $table->generate();

© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/user_guide/outgoing/table.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API