[英]How to Create Simple RESTful Application in Zend Framework 2 using AbstractRestfulController?
[英]Zend Framework 2 AbstractRestfulController - Exceptions as JSON
我的目標是得到一個像
{
"meta": {
"error_type": "error type",
"code": 400,
"error_message": "error msg"
}
}
萬一出問題了。 我試圖將try catch塊放入其余控制器的動作和模型中,但得到了整個異常堆棧(我的意思是layout + view)
什么是正確的方法?
在控制器操作中捕獲異常。
從包含異常信息的操作中返回JsonModel:
public function someAction()
{
try {
throw new Exception();
}
catch (Exception $e) {
return new JsonModel(array(
'meta' => array(
'code' => $e->getCode(),
'error_message' => $e->getMessage(),
//...
)
));
}
//...
}
來源: 從ZF2控制器操作返回JSON
[我試圖將try catch塊都放在動作休息控制器中]
我只是嘗試過(我希望我的目標成真,但是只有當出現問題時才:))
public function create($data)
{
try{
$artist = $this->getRequest()->getPost('artist', null);
$title = $this->getRequest()->getPost('title', null);
$album = new Album();
$album->exchangeArray(array('artist'=>$artist,'title'=>$title));
$id = $this->getAlbumTable()->saveAlbum($album);
return $this->get($id);
}
catch (Exception $e) {
return new JsonModel(array(
'meta' =>array(
'code'=>500,
'error-num'=>$e->getCode(),
'error-msg'=>$e->getMessage(),
)
));
}
}
但是如上所述,它無法代替json數據工作,但我得到了帶有布局的整個默認異常堆棧。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.