2015-11-26 3 views
2

Привет, ребята, я использую Jquery плагин для отображения событий в календаре, и я могу видеть календарь плагин на мой файл просмотра только проблема в том, что я не могу создать правильный файл формата json для плагинаJson Ошибка формата файла в yii2

Это формат приведен в плагин демонстрационной странице

<?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

Почему вы не создать контроллер и помещать в действие «событие»?

<?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 
}); 
+0

я пытался, что и раньше, но проблема с этим был я мог бы получить ответ обратно в браузер штрафа, но это не показывать ничего на дату события. Он по-прежнему показывает, что в эту дату нет событий, поэтому я пробовал этот формат. –

+0

Возможно, это поле описания (теперь отсутствует в коде) обязательное? –

+0

@ FabrizioCaldarelli нет, это не так. Я пробовал без описания и установил его в false. –

Смежные вопросы