Browse Source

Fix #17884: Fix 0 values in console Table rendered as empty string

tags/2.0.33
Michael Härtl 5 years ago committed by GitHub
parent
commit
c41b428088
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      framework/CHANGELOG.md
  2. 2
      framework/console/widgets/Table.php
  3. 20
      tests/framework/console/widgets/TableTest.php

1
framework/CHANGELOG.md

@ -14,6 +14,7 @@ Yii Framework 2 Change Log
- Bug #17863: `\yii\helpers\BaseInflector::slug()` doesn't work with an empty string as a replacement argument (haruatari)
- Bug #17881: `yii\db\Query::queryScalar()` wasn’t reverting the `select`, `orderBy`, `limit`, and `offset` params if an exception occurred (brandonkelly)
- Bug #17875: Use `move_uploaded_file()` function instead of `copy()` and `unlink()` for saving uploaded files in case of POST request (sup-ham)
- Bug #17884: Fix 0 values in console Table rendered as empty string (mikehaertl)
2.0.32 January 21, 2020

2
framework/console/widgets/Table.php

@ -133,7 +133,7 @@ class Table extends Widget
{
$this->rows = array_map(function($row) {
return array_map(function($value) {
return $value ?: ' ';
return empty($value) && !is_numeric($value) ? ' ' : $value;
}, array_values($row));
}, $rows);
return $this;

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

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

Loading…
Cancel
Save