2015-08-31 7 views
1

Я новичок в zendframework. Я использую apigility для служб отдыха и ApiProblemListner, чтобы вернуть ответ, если возникнет какая-либо ошибка.Невозможно использовать ApiProblemListner в apigility, используя zf2

У меня есть одна функция в модели и эту функцию только за счет исключения, используя PHP исключение для использования в блоке поймать

Я использую функцию модели в качестве функции полезности в контроллере, чтобы поймать этих исключений. В то время как ловить исключение, я использую в качестве

try{ 
    imageUploade(); // this function in model and throwing exception if any error 
}catch(\Exception $e){ 
    return new ApiProblemResponse(new ApiProblem(500 , $e->getMessage())); 
} 

если imageUploade() сгенерирует исключение, если размер изображения больше, чем я могу поймать исключение в блоке поймать. Я пробовал echo $e->getMessage(); и его печать исключений bt, если я использую new ApiProblem(500 , $e->getMessage()), он не перенастраивает ответ json error с сообщением 500. Он ничего не возвращает. даже если он не показывает никаких ошибок.

Похоже, что данный класс не может устранить ошибку. Я не уверен, что нужно добавить какое-либо событие.

Я попытался найти документы, но не смог его найти.

Заранее спасибо.

+0

Где Вы возвращаете этот ApiProblemResponse? Можете ли вы добавить какой-то контекст к своему вопросу. – Wilt

+0

Я возвращаю его в самом контроллере. Функция ImageUpload() находится в классе модели и использует эту функцию в контроллере. whtever ошибка будет обрабатываться в самом контроллере. Это сообщение, которое я использую в apiProblemResponse. Я также включаю классы, а также –

ответ

1

Обычно он должен работать, если вы возвращаете ApiProblemResponse прямо из действия контроллера.
Вы уверены, что ваш модуль Api-Problem активен?

Попробуйте один раз, как это:

<?php 

Application\Namespace; 

use ZF\ApiProblem\ApiProblem; 
use ZF\ApiProblem\ApiProblemResponse; 

class IndexController 
{ 
    /** 
    * @return ApiProblemResponse 
    */ 
    public function indexAction() 
    { 
     return new ApiProblemResponse(new ApiProblem(500, 'test')); 
    } 
} 

Если это не сработает, то я думаю, что ваш модуль Апи-Проблема не работает или исключение никогда не поймают.

+0

Спасибо .. На самом деле нормально Api-Problem работает нормально. Но когда в контроллере я улавливаю Exception, который есть из другой функции модели, которую я не могу использовать с модулем Api-Problem. Предположим, ImageUpload - это функция, которая бросает любую ошибку, потому что тип изображения неверен, тогда я не могу получить ошибку, используя $ e-> getMessage(); но если я использую в новой ApiProblem (500, $ e-> getMessage()); то он дает мне пустой ответ, который должен быть jason из api-проблемного модуля –

+0

эй, я обновил вопрос. Пожалуйста, проверьте вопрос еще раз и еще раз спасибо @Wilt –

+0

@ PhpDev.Raj Вы пытались сделать то, что я написал в своем ответе? Это работает, если вы это сделаете? Пожалуйста, дайте несколько отзывов об этом ... – Wilt

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

  • Нет связанных вопросов^_^