格式化要在Gridview Yii2中显示的文本编辑器数据

格式化要在Gridview Yii2中显示的文本编辑器数据,gridview,yii2,yii2-advanced-app,Gridview,Yii2,Yii2 Advanced App,我正在使用yii2 gridview, 我有一个名为description的字段,它包含所有样式和格式丰富的html文本 现在我知道了如何在gridview中显示该数据,并且可以限制该列在网格中显示的字符 但是我现在有两个问题 1) 我在value属性中使用了一个函数来truncate数据,因此我失去了从描述中搜索的能力。那么,我如何截断文本并能够在该列中进行搜索呢 这是我使用的代码 [ 'format' => 'html', 'label' => 'Descript

我正在使用yii2 gridview, 我有一个名为
description
的字段,它包含所有样式和格式丰富的html文本

现在我知道了如何在gridview中显示该数据,并且可以限制该列在网格中显示的字符

但是我现在有两个问题

1) 我在
value
属性中使用了一个函数来
truncate
数据,因此我失去了从描述中搜索的能力。那么,我如何
截断
文本并能够在该列中进行搜索呢
这是我使用的代码

[
    'format' => 'html',
    'label' => 'Description',
    'value' => function ($dataProvider) {
        $url = $dataProvider->description;
        return BaseStringHelper::truncateWords($url,30,null,true);
    },
],
2) 这确实解决了主要问题,但在使用该方法后,我在gridview列中显示图像时遇到了问题。我想从
description
数据中修剪
img
标记(如果有),并在gridview中显示数据,同时还可以进行搜索

我希望你们能理解我的问题。让我知道我能做什么

谢谢你

1)你能不能在数据库表中增加一个数据列,然后执行以下操作:

$formattedDesc = BaseStringHelper::truncateWords($url,30,null,true);
$model->formattedDescription = $formattedDesc;
将数据导入数据库时,要获取数据。 这通常会将该单元格中的数据显示到gridView中

///

要再次搜索,只需添加

'attribute' => 'your column name',
您可能需要将新属性绑定到搜索模型中

  ->andFilterWhere(['like or = /// etc.','columnt that you want to search   in//',
$this->getAttribute('attribute name')]);
/*请注意,搜索将使用“db column”中的数据进行,并且将显示db column数据(使用您的格式化值)

要将自定义属性添加到搜索模型,请执行以下操作:

public function attributes() {
    return array_merge(parent::attributes(), ['customAttribute']);
}

public function rules(){
    return [
           [['customAttribute'], 'safe'],
           ];
 }

嘿,谢谢你的重播,这真的很有用,但我还有一个问题,
img
tag。。因为在我的新db列中,如果
img
标记从字符串的一半断开并存储,则它不会显示仅断开字符串的图像..代码示例会很有用,因为我总是使用
“format”=>“raw”
,在gridView中显示html