而不是CGridView,我使用fullCalendar扩展将日历中的数据显示为事件。除此之外,我还有过滤器选项。
在CGridView中,我们可以编写'dataProvider'=>$model->search(),
来获取搜索数据。同样,我如何向完整的Candar扩展提供相同的数据。
我通过在控制器中获取数据来做到这一点,如下所示,并将其转换为完整日历期望的形状的数组:
public function actionCalendar()
{
$data=CalendarEntry::model()->findAll();
$model = array();
foreach ($data as $item) {
array_push($model, array(
'id' => $item->id,
'title' => $item->datetext,
'start' => $item->datedate,
'url' => CController::createUrl('calendar/view', array ('id' => $item->id)),
));
};
$this->render('calendar',array('model'=>$model));
}
在我的日历视图中,我只是设置模型:
$this->widget('application.extensions.fullcalendar.FullcalendarGraphWidget',
array(
'data'=> $model,
'htmlOptions'=>array(
'style'=>'width:800px;margin: 0 auto;'
),
)
);