Yii 是的,自定义筛选器不工作

Yii 是的,自定义筛选器不工作,yii,filter,Yii,Filter,我的自定义筛选器不工作。有人能纠正我吗 在我的 public function actionAdmin($mid=null) { // the appropriate codes here... $date = ">= ".date("Y-m-d"); $this->render('admin', array( 'model' => $model, 'mid' => $mid, 'date'=&

我的自定义筛选器不工作。有人能纠正我吗

在我的

public function actionAdmin($mid=null) {
    // the appropriate codes here... 

    $date = ">= ".date("Y-m-d");

    $this->render('admin', array(
        'model' => $model,
        'mid' => $mid,
        'date'=>$date,
    ));
}
在我的admin.php中,我在适当的字段中添加了这一行,在本例中是dateEnd

更新

好吧,问题来了。无论我点击什么,它都不会过滤任何东西。我想让它过滤一个空格或今天的日期


我能知道我做错了什么吗?请随时纠正我。谢谢

您无法访问cgridview中传递的变量。为此,您可以在控制器内定义一个全局变量,并在cgridview内访问它,如下所示:

class Yourcontroller extends Controller {

    public $date;
    public function actionAdmin($mid=null) {
      // the appropriate codes here... 

      $this->date = ">= ".date("Y-m-d");

      $this->render('admin', array(
        'model' => $model,
        'mid' => $mid
      ));
   }
}
现在,您可以访问网格内的日期:

array(
    'name'=>'dateEnd',
    'htmlOptions'=>array('width'=>'150px'),
    'filter'=>array('0'=>'', '1'=>$this->date),
 ),
更改此行:

'filter'=>array('0'=>'', '1'=>$date), 
关于这一行:

'filter' => array(">= ".date("Y-m-d") => Yii::t('app', 'Still On Leave')),
<select>
    <option value="1">One</option>
    <option value="2">Two</option>
</select>
基本上,第一个参数是实际值,第二部分是要显示的视图

在第一行中,“1”=>$date表示1个值,但在CGridView的过滤器上显示$date字段。筛选时将使用值1,而不是$date字段

将其视为HTML中的Select元素,其中有以下行:

'filter' => array(">= ".date("Y-m-d") => Yii::t('app', 'Still On Leave')),
<select>
    <option value="1">One</option>
    <option value="2">Two</option>
</select>
Javascript基本上接受值,而不是显示的单词One


这是同样的解释

'过滤器'=>数组'0'=>,'1'=>$日期在哪里?我认为你在cgridview中有问题,对吗?你能提供你的cgridview代码吗?在那里,已经添加了它。顺便说一句,他们的观点不同。