0

这可能是一个愚蠢的问题,但我是 yii 的新手,对这个简单的视图有疑问。我有这样的数据:

任务类型

身份证名称
1 个议程
2 任务
3 个音符

议程:

id user due_at created_at task_type_id 描述

我想将它们分别显示为议程和任务,以及不同 html 视图中的注释,如下所示:

任务

due_at 描述

议程

由于_at created_at 描述

笔记

描述

我不想要任何花哨的用户过滤,因为这些表格只在首页上显示一周的最大值,当前一周,并且会有单独的页面专门用于此类任务。这仅作为快速任务出现在首页。我一直在尝试使用 CGridView,但如果不显示 html 过滤器就无法过滤它。我需要在due_at 过滤,并将due_at 过滤为议程,然后按用户过滤。

有人可以帮我创建这个吗?

先感谢您

4

1 回答 1

1

如果您想为此使用 a ,您需要注意一些事情,CGridView它们如下:

  1. 使用 DataProvider:CGridView 需要一个数据提供者作为它的输入。数据提供者是:

    数据提供者是可以为数据网格、数据列表等小部件提供数据的组件。除了提供数据,它们还支持分页和排序。

    对于您当前的要求,您可以使用CActiveDataProvider. 所以你的gridview代码需要这个:

    $this->widget('zii.widgets.grid.CGridView', array(
        'dataProvider'=>$dataProvider,
    ));
    

    将此数据提供程序从控制器操作传递到视图。

  2. 使用条件:你可以传递所有那些conditions 的criteria属性CActiveDataProvider。这个标准是一个对象CDbCriteria。所以你$dataProvider可以是这样的:

    $dataProvider=new CActiveDataProvider('Agenda',array(
        'criteria'=>array(
            'condition'=>'task_type_id=1 AND due_at BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 WEEK)',
            'select'=>'due_at, description' // columns you want to select
        )
    ));
    

    condition物业是:

    查询条件。这是指 SQL 语句中的 WHERE 子句。例如,年龄>31 AND 团队=1。

    select物业是:

    正在选择的列。这是指 SQL 语句中的 SELECT 子句。该属性可以是字符串(以逗号分隔的列名)或列名数组。默认为“*”,表示所有列。

  3. 不要指定过滤器:不显示过滤器,只是不要将任何filter属性值传递给网格:

    $this->widget('zii.widgets.grid.CGridView', array(
        'dataProvider'=>$dataProvider,
        //'filter'=>$model // don't pass any filter
    ));
    
  4. 使用列:使用 的columns属性CGridView仅显示您要显示的特定列:

    $this->widget('zii.widgets.grid.CGridView', array(
        'id'=>'agenda-grid',
        'dataProvider'=>$dataProvider,
        'columns'=>array(
            'due_at',
            'description'
        )
    ));
    

    还要传递一个id将成为id该网格的div,以防您不想要自动生成的 id。

就是这样,你应该按照上面的步骤得到你想要的。

于 2012-10-06T08:14:17.393 回答