4

一个Symfony Table颜色与其他行不同。但是,我希望第一行和第一列具有相同的样式。我知道存在一个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();

例子

干杯

4

1 回答 1

3

您需要创建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>'

于 2017-10-25T09:39:35.950 回答