Php Api平台:根据请求的资源项有条件地将组添加到序列化上下文
我正在使用API平台2.0和Symfony 3.1 我遵循WIP文档有条件地将组添加到序列化上下文中。为此,我装饰了ContextBuilder 这可以根据当前登录的用户设置一些组。 但现在我还想根据请求的资源项添加一些组,所以我需要这些组作为对象可用,已经从持久性层获取 大概是这样的:Php Api平台:根据请求的资源项有条件地将组添加到序列化上下文,php,symfony,api-platform.com,Php,Symfony,Api Platform.com,我正在使用API平台2.0和Symfony 3.1 我遵循WIP文档有条件地将组添加到序列化上下文中。为此,我装饰了ContextBuilder 这可以根据当前登录的用户设置一些组。 但现在我还想根据请求的资源项添加一些组,所以我需要这些组作为对象可用,已经从持久性层获取 大概是这样的: public function createFromRequest(Request $request, bool $normalization, array $extractedAttributes = nul
public function createFromRequest(Request $request, bool $normalization, array $extractedAttributes = null) : array {
/* @var $currentUser User */
$currentUser = $this->tokenStorage->getToken()->getUser();
/* @var $requestedProduct Product */
$requestedProduct = $this->getRequestedItem();
if ($product->getAuthoringOrganization() === $currentUser->getOrganization() {
$context['groups'][] = 'api_products_get_item_current_user_is_owner';
}
return $context;
}
恐怕我无法在ContextBuilder中获取所需的项目/集合。如果是这样的话,我真的很乐意得到一些建议,在哪里建立我的序列化组
在EventListener中,我可以在此处获取我称为“$requestedProduct”的内容:
非常感谢你的帮助
Cheers Ben可从请求属性中获得:
$request->attributes->get('data');
请参见非常感谢,现在我想完成我的问题,看到您已经添加了拉请求讨论中的评论。非常感谢你的帮助!
$request->attributes->get('data');