1

我一直在网上搜索有关此问题的信息,但运气不佳。

我正在使用 symfony 从数据库中检索数据以加载到 extjs 库中。我的问题是加载数据时,出现错误提示“Ext.Error:您正在尝试解码无效的 JSON 字符串”

我正确查询了数据库,因为它返回了一组数据。我认为的问题是将数组转换为 json 格式。

这是调试我返回的 json 格式时显示的内容:

返回 json 格式

我的代码是:

  public function executeGetData(sfWebRequest $request)
  {
      $SQL = " SELECT sked.id, sked.program_id, sked.agentname,
            sked.customername, sked.customercontact, sked.callback_dt,
            sked.callback_dt AS date_closed
            FROM schedule sked LIMIT 5";

$Doctrine_Manager = Doctrine_Manager::getInstance()->getConnection('callback_tracker');
$result = $Doctrine_Manager->fetchAll($SQL);

$final = array("evts" => $result);

$finalJson = json_encode($final);
echo $finalJson;

我的活动商店:

   var eventStores = Ext.create('Extensible.calendar.data.EventStore', {
//autoLoad: true,
id: 'calStore',
proxy: {
    type: 'rest',
    url: '/home/GetData',
    //appendId: false,
    method: 'POST',
    reader: {
    type: 'json',
    root: 'evts'
    },

    writer: {
    type: 'json',
    nameProperty: 'mapping'
    },

    listeners: {
    exception: function(proxy, response, operation, options){
        var msg = response.message ? response.message : Ext.decode(response.responseText).message;
        // ideally an app would provide a less intrusive message display
        Ext.Msg.alert('Server Error', msg);
    }
    }
},

listeners: {
    'write': function(store, operation){
    var title = Ext.value(operation.records[0].data[Extensible.calendar.data.EventMappings.Title.name], '(No title)');

    console.debug('Operation Action = ' + operation.action);
    switch(operation.action){
        case 'create': 
        //Extensible.example.msg('Add', 'Added "' + title + '"');
        break;
        case 'update':
        //Extensible.example.msg('Update', 'Updated "' + title + '"');
        break;
        case 'destroy':
           //Extensible.example.msg('Delete', 'Deleted "' + title + '"');
        break;
    }
    }
}
});

我在 Calendar.BTW 的渲染之后加载它,我使用的库是可扩展日历。

这里有什么问题?是json格式吗?你如何转换这个?

4

0 回答 0