我在控制器的索引操作中有以下代码:
public function actionIndex()
{
$cid = @$_GET['cid'];
$country = Country::model()->findByPk($cid);
if($cid)
$dataProvider=new CActiveDataProvider('City', array(
'criteria'=>array(
'condition'=>'ci_co_id ='.$cid,
),
));
else
$dataProvider=new CActiveDataProvider('City');
$this->render('index',array(
'dataProvider'=>$dataProvider,
'country' => $country
));
}在view/index.php文件中:
<?php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'city-grid',
'dataProvider'=>$dataProvider,
'filter' => $dataProvider,
'columns'=>array(
array(
'name' => ' ',
'value' => '$row + 1',
),
'ci_name',
'ci_pcode',
array(
'class'=>'CButtonColumn',
),
)
));
?>但是Yii给了我这个错误:
CActiveDataProvider and its behaviors do not have a method or closure named "getValidators". 有什么问题吗?
发布于 2012-12-31 06:09:38
筛选器必须是扩展CModel的类。但是,您似乎并没有进行任何实际的过滤,所以您可以只注释掉CGridView的filter行。
顺便说一句,你的标准中有很大的安全漏洞。您使自己很容易受到SQL注入攻击。
按如下方式指定条件,以使数据库处理程序正确地转义输入:
'criteria'=>array(
'condition'=>'ci_co_id =:cid',
'params'=>array(':cid'=>$cid),
),https://stackoverflow.com/questions/14093839
复制相似问题