Длина столбца CDataProvider

у меня есть сетка

<?php $this->widget('bootstrap.widgets.TbGridView',array(
    'id'=>'products-grid',
    'htmlOptions'=>array('class'=>'grid-view table-striped',),
    'dataProvider'=>$model->search(),
    'columns'=>$columns,
)); ?>

$модель->поиск()

return new CActiveDataProvider($this, array(
            'criteria' => $criteria,
            'pagination' => array('pageSize' => 50)
        ));

И мне нужно ограничить длину каждого столбца. Например, если столбец 1 имеет значение

"Привет, мир"

и переменная конфигурации для первого столбца равна 7, тогда мне нужно отобразить

"Здравствуй В..."

Я думаю, что могу решить свою проблему с поведением, я прав? Помогите пожалуйста мне!


person Ozerich    schedule 27.11.2012    source источник


Ответы (2)


Измените функцию поиска на эту.. не уверен, что это самая быстрая

public function search(){
$returnarray = array();
$dataset =  new CActiveDataProvider($this, array(
            'criteria' => $criteria,
            'pagination' => array('pageSize' => 50)
        ));
    foreach($dataset as $ds){
        $returnarray['your_table_index'] = (strlen($ds->your_element) > 8) ? substr($ds->your_element,0,7).'...' : $ds->your_element;
    }
   return $returnarray;
}
person coolguy    schedule 27.11.2012
comment
Да, я понимаю, как обрезать струну. Но где я могу написать этот код? У меня есть только $this->widget('...'); - person Ozerich; 27.11.2012
comment
Можете ли вы дать мне ссылку, какой виджет вы используете... может быть, он имеет некоторые настройки? - person coolguy; 27.11.2012
comment
yiiframework.com/doc/api/1.1/CGridView базовый виджет для TbGridView, нет конфига на длину - person Ozerich; 27.11.2012
comment
Что это $model->search() делает? ..я думаю, это ваши данные ..используйте substr..оттуда - person coolguy; 27.11.2012

параметр значения CDataColumn помогает мне

foreach($columns as &$column)
{
    if($column['name'] == 'number')
    {
         $column['value'] = 'strlen($data->number) > 14 ? substr($data->number, 0, 14)."..." : $data->number';
    }
}
person Ozerich    schedule 27.11.2012