Консольная таблица Laravel с шириной столбца
Я только что обнаружил функцию рендеринга таблицы в консольной команде Laravel .
Мой проект построен на Laravel 5.8, но даже если есть ответ для более продвинутых версий, было бы здорово узнать.
Я ищу рендеринг таблицы с определенной (а еще лучше - ограниченной) шириной столбца. Что-то типа:
$data = [
['John', 'The Curious Incident of the Dog in the Night-Time'],
['Rachel', 'The Catcher in the Rye']
];
// Code for columns width is missing
$this->table(['Name', 'Favorite book'], $data);
Таким образом, вывод будет:
+--------+-------------------------+
| Name | Favorite book |
+--------+-------------------------+
| John | The Curious Incident... |
| Rachel | The Catcher in the Rye |
+--------+-------------------------+
Я видел, что таблица Symfony (на которой основана таблица laravel) имеет
setColumnWidths()
функция, но я не могу найти способ использовать ее из консольной команды.
Кто-нибудь знает, возможно ли это?
1 ответ
К сожалению, вы не можете использовать
setColumnWidths
, поскольку
table
поддерживает только стиль таблицы и стиль столбца, как вы можете видеть здесь .
Вы можете напрямую использовать таблицу Symfony или просто создать свой лимит слов (через
Str::limit
):
$size = 20;
$data = [
['John', Str::limit('The Curious Incident of the Dog in the Night-Time', $size)],
['Rachel', Str::limit('The Catcher in the Rye', $size)]
];
$this->table(['Name', 'Favorite book'], $data);