Контроллер проверяет требования к действию процесса

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

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

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

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


person Northys    schedule 01.10.2016    source источник


Ответы (1)


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

// paramConverter requires that you type-hint a class, which is a best practice anyway :)
public function getArtist(\Appbundle\Entity\Song $song)
{
    //...
}
person Rhono    schedule 02.10.2016