Browse Source

Fix #17648: Handle empty column arrays in console `Table` widget

tags/2.0.30
alex-code 5 years ago committed by Alexander Makarov
parent
commit
b0b1c82ae9
  1. 2
      framework/CHANGELOG.md
  2. 6
      framework/console/widgets/Table.php
  3. 18
      tests/framework/console/widgets/TableTest.php

2
framework/CHANGELOG.md

@ -4,7 +4,7 @@ Yii Framework 2 Change Log
2.0.30 under development
------------------------
- no changes in this release.
- Bug #17648: Handle empty column arrays in console `Table` widget (alex-code)
2.0.29 October 22, 2019

6
framework/console/widgets/Table.php

@ -131,7 +131,11 @@ class Table extends Widget
*/
public function setRows(array $rows)
{
$this->rows = array_map('array_values', $rows);
$this->rows = array_map(function($row) {
return array_map(function($value) {
return $value ?: ' ';
}, array_values($row));
}, $rows);
return $this;
}

18
tests/framework/console/widgets/TableTest.php

@ -285,4 +285,22 @@ EXPECTED;
->setRows([])->setScreenWidth(200)->run()
);
}
public function testEmptyTableCell()
{
$table = new Table();
$expected = <<<'EXPECTED'
╔═══════╤═══════╗
║ test1 │ test2 ║
╟───────┼───────╢
║ test │ ║
╚═══════╧═══════╝
EXPECTED;
$this->assertEqualsWithoutLE($expected, $table->setHeaders(['test1', 'test2'])
->setRows([['test', []]])->setScreenWidth(200)->run()
);
}
}

Loading…
Cancel
Save