我无法使用Api Platform保护子资源。 我有一个实体产品和另一个实体商店。 Store通过OneToMany关系链接到Store。
我无法保护路线/ stores / {id} / products
我尝试了
* collectionOperations={
* "api_stores_products_get_subresource"={
* "method"="GET",
* "path"="/stores/{id}/products",
* "access_control"="object == user.store",
* "access_control_message"="Only owner can get subresource"
* }
* },
但是,即使我是所有者,我也无法访问任何商店的产品
所以我尝试了
* subresourceOperations={
* "api_stores_products_get_subresource"={
* "method"="GET",
* "path"="/stores/{id}/products",
* "access_control"="object == user.store",
* "access_control_message"="Only owner can get subresource"
* }
* }
但是即使我不是所有者,我也可以访问所有商店的产品
我确实在商店实体上实现了此代码
所以我也尝试过
* collectionOperations={
* "api_stores_products_get_subresource"={
* "method"="GET",
* "path"="/stores/{id}/products",
* "access_control"="object.owner == user",
* "access_control_message"="Only owner can get subresource"
* }
* },
但是我有这个错误,我认为这是合乎逻辑的
"hydra:title": "An error occurred",
"hydra:description": "Unable to get a property on a non-object.",
如果您有任何想法:) 非常感谢您的宝贵时间。