2016-10-24 70 views
1

我有以下數據的用戶表:CakePHP虛擬字段發送頭文件?

class User extends Entity 
{ 

protected $_virtual = ['createdformated','modifiedformated']; 

protected function _getCreatedformated() 
{ 
    $date = new Time($this->_properties['created']); 
    $final=strftime("%d/%m/%Y %H:%M", $date->getTimestamp()); 
    return $final; 
} 

protected function _getModifiedformated() 
{ 
    $date = new Time($this->_properties['modified']); 
    $final=strftime("%d/%m/%Y %H:%M", $date->getTimestamp()); 
    return $final; 
} 
} 

如果在我的控制器我打電話:

$logusers["data"] = $this->Logusers->find('all') 
     ->contain(['Users']) 
     ->order(['Logusers.id'=>'DESC']); 

    echo json_encode($logusers); 

而且jsonenconde

Warning (512): Unable to emit headers. Headers sent in file=C:\wamp\www\otras\mailing\src\Controller\UsersController.php line=91 [CORE\src\Http\ResponseEmitter.php, line 48] 

後,我得到以下。如果我只留下1(一個)虛擬字段,問題就不存在了......問題只有在我啓用它們時纔會發生。

是什麼問題?

回答

2

問題是你的回聲在那裏。

執行sending JSON via CakePHP的正確方法或將json傳遞給響應主體並返回控制器操作中的響應。

+0

這是正確的做法嗎? $ this-> response-> type('json'); $ this-> response-> body(json_encode($ logusers)); –

+0

應該可以工作。不過,我個人更喜歡JSON視圖,因爲它不需要您向操作添加請求特定的代碼。 Cake會檢測到請求是JSON併爲你配置相應的響應。 – burzum

+0

嗯,只是在看文檔,並沒有解釋,它告訴我加載組件並設置_serialize,但沒有任何反應。 –