Как в GridVIew сокращать длиный текст?

В Yii есть несколько способов сокращать длинный текст в GridView. Один из способов - использовать свойство 'format' в определении столбца GridView.

1. Определите столбец в GridView:

[
    'attribute' => 'description',
    'format' => 'text',
],

2. Чтобы ограничить длину текста, можно использовать функцию substr или mb_substr:

[
    'attribute' => 'description',
    'format' => 'text',
    'value' => function($model){
        return mb_substr($model->description, 0, 100) . '...';
    },
],

В приведенном выше примере текст будет обрезан до 100 символов, а затем будет добавлено многоточие.

3. Если текст содержит HTML-теги, то можно использовать функцию strip_tags для удаления этих тегов перед сокращением:

[
    'attribute' => 'description',
    'format' => 'text',
    'value' => function($model){
        return mb_substr(strip_tags($model->description), 0, 100) . '...';
    },
],

4. В некоторых случаях может быть полезно использовать CSS для создания сокращенного вида. Например, задав максимальную ширину столбца с длинным текстом и использовав стиль text-overflow: ellipsis, вы можете создать эффект обрезки текста с многоточием:

[
    'attribute' => 'description',
    'format' => 'html',
    'value' => function($model){
        return '<div class="ellipsis">' . $model->description . '</div>';
    },
],

CSS:

.ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px; /* ваша максимальная ширина */
}

Это позволит отображать столбец с сокращенным текстом и добавит многоточие в конце отображения, если текст шире, чем максимальная ширина столбца.

Надеюсь, эти способы помогут вам сократить длинный текст в GridView по вашим требованиям.