本文介绍了如何在 Yii 上的 CGridView 中添加 select2 扩展作为过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在 CGridView 的一列中添加一个带有 select2 扩展名的过滤器 answer 但不起作用.

I'm trying to add in one column of the CGridView a filter with select2 extension following this answer but does not work.

我的代码:

查看vehiculos/admin.php

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'vehiculos-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
    'id',
    'placa',
    array(
        'name'=>'asociado_id',
        'value'=>'Vehiculos::model()->getListNombreCompleto()',
        'type'=>'html',

        ),
    'modelo',
    'color',
    array(

        'class'=>'CButtonColumn',
    ),
)));

在 vehiculos.php 模型中

public function getListNombreCompleto()
    {
        $nombreCompleto = Contactos::model()->findAll();
        $data = array();
        foreach ($nombreCompleto as $contacto) {
            $data[$contacto->id] = $contacto->nombre;
        }
         $this->widget('ext.select2.ESelect2',array(
          'name'=>'asociado_id',
          'data'=>$data,
          'htmlOptions'=>array(
          ),
        ));
    }

显示错误 CException:

Vehiculos and its behaviors do not have a method or closure named "widget".

推荐答案

无需从控制器方法中获取小部件

No need to fetch the widget from controller method

在gridview列中

In the gridview column

array(
        'name'=>'asociado_id',
        'value'=>'Vehiculos::model()->getListNombreCompleto()',
        'filter' => $this->widget('ext.select2.ESelect2',array(
          'name'=>'asociado_id',
          'data'=>$select2_options,
        ), true)

        ),

这篇关于如何在 Yii 上的 CGridView 中添加 select2 扩展作为过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-13 01:50