yii2中的Json文件格式错误

时间:2015-11-26 00:32:27

标签: php json yii2

大家好我正在使用Jquery插件在日历中显示事件,我可以在我的视图文件上看到插件日历,问题是我无法创建有效的json格式文件插件

这是插件演示页面中给出的格式

 <?php
header('Content-type: text/json');
echo '[';
$separator = "";
$days = 16;
echo '  { "date": "1314579600000", "type": "meeting", "title": "Test Last Year" },';
echo '  { "date": "1377738000000", "type": "meeting", "title": "Test Next Year"},';
for ($i = 1 ; $i < $days; $i= 1 + $i * 2) {
  echo $separator;
  $initTime = (intval(microtime(true))*1000) + (86400000 * ($i-($days/2)));
  echo '    { "date": "'; echo $initTime; echo '", "type": "meeting", "title": "Project '; echo $i; echo ' meeting",   },';
  echo '    { "date": "'; echo $initTime+3600000; echo '", "type": "demo", "title": "Project '; echo $i; echo ' demo" },';

  $separator = ",";
 }
  echo ']';
?>

显示数据的controller代码应该是什么。我在下面的答案中尝试了格式,但它仍然没有正确显示数据。

我认为我在前端收到的json格式有问题。第一个图像是我的本地主机,我接收数据,第二个是插件演示和数组格式有点不同,我想这就是问题

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

为什么不创建一个控制器并放入一个&#39;事件&#39;动作?

<?php
namespace app\controllers;


class SiteController extends Controller
{
    public function actionEvent()
    {
       /* Input parameters */
       $limit = \Yii::$app->request->get('limit');
       $year = \Yii::$app->request->get('year');
       $month = \Yii::$app->request->get('month');
       $day = \Yii::$app->request->get('day');

       /* Fill data */
       $data = [];
       $data[] = [ 'date' => '1314579600000', 'type' => 'meeting', 'title' => 'Test Last Year' ]; 

       /*
       ...
       ... other data ...
       ...
       */

        /* Prepare the content output*/
        \Yii::$app->response->format = 'json';
        echo \yii\helpers\Json::encode($data);
    }
}

最后调用动作:

$("#eventCalendarNewWindow").eventCalendar({
        eventsjson: "<?php echo \yii\helpers\Url::to(['site/event']) ?>",
        openEventInNewWindow: true,
        showDescription: true // also it can be false
});