2016-10-01 2 views
0

Я пытаюсь выяснить, есть ли возможность проверки требований перед обработкой действия контроллера. В Nette существуют такие методы, как checkRequirements, onStartup, beforeRender, где я могу это проверить.Требования к проверке контроллера для обработки действий

У меня есть апи ресурс album/{albumId}/song/, и я хотел бы проверить, если альбом с данной id существует каждый раз, когда какие-либо действия на моем SongController обрабатываются и возврат 404 кода статуса, если нет.

До сих пор я нашел this article in Symfony documentation, где я нашел нет таких методов, как preExecute и postExecute. Однако, я думаю, есть комплект или что-то в этом роде, чтобы добавить эти методы. Я думаю, что нет смысла создавать новый класс, чтобы использовать его только в одном контроллере.

Есть ли другие варианты для этого?

ответ

2

ParamConverter делает это. Он ищет объект, использующий идентификатор, предоставленный с маршрута, и генерирует исключение, возвращая 404, если он ничего не находит.

// paramConverter requires that you type-hint a class, which is a best practice anyway :) 
public function getArtist(\Appbundle\Entity\Song $song) 
{ 
    //... 
} 
Смежные вопросы