Консольная таблица 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);
Другие вопросы по тегам