Yii Gridview показывает/скрывает столбцы из интерфейса при фильтрации записей

Я использую YII Gridview, чтобы показать/скрыть столбцы при фильтрации записей. Пример: если в списке указано имя, город, штат и телефон, я хочу, чтобы флажок отображал/скрывал любой из столбцов, таких как «Телефон», «Имя» в списке. Пожалуйста, предложите.

заранее спасибо


person Ravi Kumar    schedule 08.01.2016    source источник
comment
ты что-нибудь пробовал?   -  person Insane Skull    schedule 08.01.2016
comment
Я могу сделать это с таблицей данных, но хочу сделать это с помощью Gridview.   -  person Ravi Kumar    schedule 08.01.2016
comment
я имею в виду, показать ваши усилия. что вы пробовали до сих пор.   -  person Insane Skull    schedule 08.01.2016


Ответы (2)


вы можете использовать видимый атрибут полей столбца gridview

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        'your_attribute1',
        ....
        [
            'label' => 'your_labe',
            'attribute_n' => 'your_attribute',
             'visible' => ( $your_condition == 'value_for_visible') 
        ],
        ......
person scaisEdge    schedule 08.01.2016

Вы должны использовать опцию «видимый» для этого. просто передайте условие, в котором вам нужно увидеть этот столбец. Как это :

 <?php echo GridView::widget( [
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
    ['class' => 'yii\grid\SerialColumn'],
    ['attribute'=>'your_column',
    'visible'=> if ( $data->field_name == "some_value" ) ? true : false,
    'value'=>function( $data ) {
        return !empty( $data->your_column ) ? $data->your_column : '0.5';
    },
    ]
    ] );?>
person RK12    schedule 08.01.2016