yii2中的Json文件格式错误
问题描述:
嗨,大家好,我正在使用Jquery
插件来显示日历中的事件,我可以在我的视图文件中看到插件日历,问题是我无法为插件创建有效的json
格式文件yii2中的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
格式有问题。第一形象是我的本地我在哪里接收数据,第二个是插件的演示和阵列格式是有点不同的我想和那
答
你为什么不创建问题一个控制器,并把一个'事件'行动?
<?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
});
我试过之前,但与这个问题是我能得到响应返回到浏览器不错,但它不显示在活动日期什么。它仍然显示那天没有事件,这就是为什么我尝试这种格式。 –
也许是描述字段(现在在代码中缺少)是强制性的? –
@ FabrizioCaldarelli没关系。我尝试了没有描述并将其设置为false。 –