2014-01-08 17 views
1

我在我的admin.php中有該代碼,即我的Yii項目中的視圖文件。如何在Yii的CGridView中減少文本描述

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'topic-grid', 
    'dataProvider'=>$model->search(), 
    'filter'=>$model, 
    'columns'=>array(
     'id', 
     'name', 
     'description:html', // I want to change this 
     array(
      'class'=>'CButtonColumn', 
     ), 
    ), 
)); ?> 

其實description:html顯示了很多文字描述,它存儲在我的數據庫中。

所以我的問題是,我想在這裏打印一行描述。

所以我不知道該怎麼做。

任何幫助將不勝感激。

謝謝。

回答

3

雖然HETT給了一個答案,但你可以做到這一點也

array(
      'name'=>'description', 
      'value'=>array($this,'showFewLines') 
     ), 

,然後在控制器創建一個函數

public function showFewLines($data,$row) 
{ 
$allData=$data->description; 
return substr($allData, 0, 40); 
} 
+1

另一種選擇是隻添加descriptionBla屬性,一些getSescriptionBla在模型中,然後在參數中加入'descriptionBla'。它會更好 - 在模型中保存所有與模型相關的代碼。 – gaRex

+0

@gaRex完全:)所有與模型相關的代碼都應該在模型中,僅用於簡化和更好的理解。 :) –

2

莫名其妙

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'topic-grid', 
    'dataProvider'=>$model->search(), 
    'filter'=>$model, 
    'columns'=>array(
     'id', 
     'name', 
     array(
      'name'=>'description', 
      'value'=>function($data) { 
       return substr($data->description, 0, strpos($data->description, '<br>')); 
      }, 
     ), 
     array(
      'class'=>'CButtonColumn', 
     ), 
    ), 
)); ?> 
+2

也許你的數據不包含n
? 然後使用「\ n」,請啓用大腦;) – Hett