Filter Yii CGridView和下拉过滤器

Filter Yii CGridView和下拉过滤器,filter,yii,Filter,Yii,我创建了下拉过滤器,它的显示,但不工作的权利。我在search()方法中遇到了麻烦 视图: $this->widget('zii.widgets.grid.CGridView', array( 'dataProvider'=>$model->search(), 'filter' => $model, 'columns'=>array( array( 'nam

我创建了下拉过滤器,它的显示,但不工作的权利。我在search()方法中遇到了麻烦

视图:

   $this->widget('zii.widgets.grid.CGridView', array(
        'dataProvider'=>$model->search(),
        'filter' => $model,
        'columns'=>array(
            array(
                'name' => 'client_id',
                'filter' => CHtml::listData(Client::model()->findAll(), 'client_id', 'name'),
                'value'=>'$data->client->name'
            ),
            'task'
         )
    ));
我必须把这些表放下来,它们的关系显示在下面 型号:


检查
规则
方法<对于
搜索

public function rules()
{
    return array(
        array('client_id', 'safe', 'on'=>'search'),
    );
}

检查,它详细地解释了您需要什么。

我承认我的错误,我的控制器应该是这样的:

public function actionIndex()
{
    $model=new Tasks;
    if(isset($_REQUEST['Tasks']))
        $model->attributes=$_GET['Tasks'];
    $this->render('index',array(
        'model'=>$model
    ));
}

我放弃了从控制器到模型的传递参数。谢谢大家

它怎么不起作用?它输出的是什么?我认为这个wiki可能会有所帮助:它输出的结果与filterin之前的相同,我认为$this->client_id在CDBCriteria中不起作用,我尝试过,但也没有结果。排序工作正常,但按下拉列表中的值进行搜索不起作用,如mashingan所述,请检查您是否有客户端id的安全规则,以便可以对其进行批量分配阵列(“任务id、客户端搜索、任务、开始日期、结束日期、完成、客户端id”、“安全”、“打开”=>“搜索”),您是否可以确认在服务器端获取该值?打印($_POST)输出的是什么?当我使用$criteria->compare('client_id',$_REQUEST['Tasks']['client_id'])而不是$criteria->compare('client_id',$this->client_id)时;一切正常。
public function actionIndex()
{
    $model=new Tasks;
    if(isset($_REQUEST['Tasks']))
        $model->attributes=$_GET['Tasks'];
    $this->render('index',array(
        'model'=>$model
    ));
}