yii - 在CGridView不过滤,过滤器

  显示原文与译文双语对照的内容
0 0

你能检查为什么过滤不能在CGridView中工作? 在筛选字段中键入 exaple'adam'时,没有发生任何情况。 我找不到我的错误,一切都正常,但不能工作。 我帮助了那篇文章: Yii: CGridView过滤器示例

控制器


 <?php
 class UzytkownikController extends CController
 {
 public function actionIndex()
 {
 $Dane = new Uzytkownik('search');
 $Dane -> unsetAttributes();//clear any default values
 if(isset($_GET['Uzytkownik']))
 {
 $Dane->attributes=$_GET['Uzytkownik'];
 }
 $this -> render ('index', array(
 'Dane' => $Dane,
 ));
 }
 }
?>

型号


<?php
class Uzytkownik extends CActiveRecord
{
 public static function model($className=__CLASS__)
 {
 return parent::model($className);
 }

 public function search()
 {
 $criteria = new CDbCriteria;
 $criteria -> compare('imie', $this -> imie, true);

 return new CActiveDataProvider($this, array(
 'criteria' => $criteria,
 )
 );
 }
}

?>

enter image description here

WIEV


<?php 
 $this -> widget('zii.widgets.grid.CGridView', array(
 'dataProvider' => $Dane -> search(),
 'filter' => $Dane,
 'columns' => array(
 array(
 'name' => 'imie',
 'type'=>'raw',
 ),
 array(
 'name' => 'nazwisko',
 'type'=>'raw',
 'filter' => false,
 ),
 array(
 'name' => 'data',
 'filter' => false,
 ),
 ), 
 )
 );
?>

enter image description here

时间: 原作者:

0 0

供将来参考:

为了确保 $model->attributes"保存"的属性,model 需要以下添加:


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

在发布到服务器时,CGridView 小部件使用 GET,因此应该使用 $_GET 代替 $_POST:


class UzytkownikController extends CController
{
 public function actionIndex()
 {
 $Dane = new Uzytkownik('search');
 $Dane -> unsetAttributes();//clear any default values
 if(isset($_GET['Uzytkownik']))
 {
 $Dane->attributes=$_GET['Uzytkownik'];
 }
 $this -> render ('index', array(
 'Dane' => $Dane,
 ));
 }
}

...