Как отформатировать первый столбец в таблице Symfony так же, как первый ряд?

Таблица Symfony обычно окрашивает первую строку в отличие от других строк. Однако я хотел бы, чтобы первая строка И первый столбец имели одинаковый стиль. Я знаю, что существует TableStyle но я не могу понять, как придать первому столбцу + первой строке такой же стиль. В этом примере таблицы я бы хотел, чтобы первый столбец также окрашивался в зеленый цвет (текст Строка A, Строка B и Строка C).

Этот пример таблицы может быть создан с использованием следующего кода:

$table = new Table($output);
$table
    ->setHeaders(array('Col A', 'Col B', 'Col C'))
    ->setRows(array(
        array('Row A', 'Divine Comedy', 'Dante Alighieri'),
        array('Row B', 'A Tale of Two Cities', 'Charles Dickens'),
        array('Row C', 'The Lord of the Rings', 'J. R. R. Tolkien'),
    ))
;
$table->render();

examplee

ура

1 ответ

Решение

Вам нужно создать TableStyle экземпляр и установить cellRowContentFormat как это:

<?php

use Symfony\Component\Console\Helper\Table;

require_once 'vendor/autoload.php';

$output = new Symfony\Component\Console\Output\ConsoleOutput();
$table = new Table($output);
$style = new \Symfony\Component\Console\Helper\TableStyle();
$style->setCellRowContentFormat('<info> %s </info>');
$table->setColumnStyle(0, $style);
$table
    ->setHeaders(array('Col A', 'Col B', 'Col C'))
    ->setRows(array(
        array('Row A', 'Divine Comedy', 'Dante Alighieri'),
        array('Row B', 'A Tale of Two Cities', 'Charles Dickens'),
        array('Row C', 'The Lord of the Rings', 'J. R. R. Tolkien'),
    ))
;
$table->render();

Вы можете посмотреть на TableStyle::$cellRowContentFormat а также TableStyle::$cellHeaderFormat значения членов по умолчанию: по умолчанию $cellHeaderFormat является '<info>%s</info>'и это значение делает заголовок ячейки зеленым (информационный цвет).

Другие вопросы по тегам