2012-08-02 32 views
1

我想了解如何/何处将$ start和$ end变量传递给FullCalendar Yii模块的MainController.php脚本中的actionList函数:FullCalendar Yii模块:mainController.php中的actionList函数

http://www.yiiframework.com/extension/cal/

http://arshaw.com/fullcalendar/

public function actionList($start = 0, $end = 0) 
{ 
    if ((Yii::app()->request->isAjaxRequest) and (Yii::app()->user->hasState('calUserId'))) 
    { 
     $criteria = new CDbCriteria(array(
        'condition' => 'user_id=:user_id', 
        'params'=>array(':user_id'=> Yii::app()->user->getState('calUserId')), 
       )); 
     $criteria->addBetweenCondition('start', $start, $end); 
     $events = Event::model()->findAll($criteria); 
     echo CJSON::encode($events); 
     Yii::app()->end(); 
    } 
} 

这是否来自fullcalendar.min.js脚本?它好像是叫的唯一地方是在eventCal.js:

var defaultCalendarOptions = { 
     events: params.baseUrl+'list', 

变数曾经在使用Yii的模块通过或正在他们总是$启动= 0,$结束= 0?如果他们通过了,请解释$start$end变量是如何...

+0

链接到这个模块将有所帮助 – 2012-08-03 05:02:39

回答

1

是传递给actionList方法实际上$_GET参数。 Yii框架通常会这样做 - 如果一个操作方法具有参数,它会查找同名的$_GET参数并将其传递给参数。

你做了一个很好的假设events: params.baseUrl+'list'线用于这一点,但发送GET请求的代码的实际件深埋在fullcalendar.js文件中:

$.ajax($.extend({}, ajaxDefaults, source, { 
    data: data, 
    ... 

在这段代码, source是来自上面的events参数,该参数被传递到实际的fullcalendar脚本,而data是具有startend参数的数组。你可以找到脚本here的完整源代码。您使用的扩展名只有缩小版。

+0

这更好理解,谢谢你的详细解释。 – ews2001 2012-08-06 02:08:18