我的目標是獲得一個JSON像Zend框架2 AbstractRestfulController - 例外的JSON
{
"meta": {
"error_type": "error type",
"code": 400,
"error_message": "error msg"
}
}
萬一出事了。 我試圖把try catch塊放在其餘控制器的動作和模型中,但是我得到了整個異常堆棧(我的意思是佈局+視圖)
什麼是正確的方法?
我的目標是獲得一個JSON像Zend框架2 AbstractRestfulController - 例外的JSON
{
"meta": {
"error_type": "error type",
"code": 400,
"error_message": "error msg"
}
}
萬一出事了。 我試圖把try catch塊放在其餘控制器的動作和模型中,但是我得到了整個異常堆棧(我的意思是佈局+視圖)
什麼是正確的方法?
捕捉控制器操作中的異常。
返回從包含異常信息的行動JsonModel:
public function someAction()
{
try {
throw new Exception();
}
catch (Exception $e) {
return new JsonModel(array(
'meta' => array(
'code' => $e->getCode(),
'error_message' => $e->getMessage(),
//...
)
));
}
//...
}
[我試圖把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數據我與佈局 全默認異常堆棧。
您可以將異常跟蹤粘貼到要點中嗎?這看起來不正常,在我看來,這個異常是在try-catch塊之外引發的。 – Ocramius 2013-03-18 02:59:13
觸發異常我將藝術家專輯字段設置爲唯一於$ curl -i -H「Accept:application/json」-X POST -d「artist = AC DC2&title = Dirty Deeds2」http:// localhost/zf2/public /休息兩次,你可以看看整個堆棧http://pastebin.com/uLftaG7s – Whisher 2013-03-18 14:20:28
我可以看到我可以看到..../Driver/Pdo/Statement.php:245 ...... – Whisher 2013-03-18 14:38:30