控制器检查要求以处理操作
Controller check requirements to process action
我想弄清楚是否可以在处理控制器操作之前检查需求。在 Nette 中有 checkRequirements
、onStartup
、beforeRender
等方法,我可以在其中检查。
我有 api 资源 album/{albumId}/song/
并且每次对我的 SongController[=30= 进行任何操作时,我想检查给定 id
的专辑是否存在] 被处理并且 return 404 状态码 如果没有。
到目前为止,我发现 this article in Symfony documentation 没有像 preExecute
和 postExecute
这样的方法。但是我想有 bundle 或类似的东西来添加这些方法 。我认为创建新的 class 仅在一个控制器中使用它没有意义。
还有其他选择吗?
ParamConverter 这样做。它使用路由提供的 ID 查找实体并抛出异常,如果没有找到任何内容,则返回 404。
// paramConverter requires that you type-hint a class, which is a best practice anyway :)
public function getArtist(\Appbundle\Entity\Song $song)
{
//...
}
我想弄清楚是否可以在处理控制器操作之前检查需求。在 Nette 中有 checkRequirements
、onStartup
、beforeRender
等方法,我可以在其中检查。
我有 api 资源 album/{albumId}/song/
并且每次对我的 SongController[=30= 进行任何操作时,我想检查给定 id
的专辑是否存在] 被处理并且 return 404 状态码 如果没有。
到目前为止,我发现 this article in Symfony documentation 没有像 preExecute
和 postExecute
这样的方法。但是我想有 bundle 或类似的东西来添加这些方法 。我认为创建新的 class 仅在一个控制器中使用它没有意义。
还有其他选择吗?
ParamConverter 这样做。它使用路由提供的 ID 查找实体并抛出异常,如果没有找到任何内容,则返回 404。
// paramConverter requires that you type-hint a class, which is a best practice anyway :)
public function getArtist(\Appbundle\Entity\Song $song)
{
//...
}