gpt4 book ai didi

php - api-platform 过滤掉软删除的项目

转载 作者:行者123 更新时间:2023-12-05 02:54:30 26 4
gpt4 key购买 nike

我已经使用 softdelete 为我的 Store 实体设置了软删除.

这是我在 doctrine.yml 中的过滤器设置:

doctrine:
# ...
orm:
# ...
filters:
softdeleteable:
class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
enabled: true

所以当我点击例如URL /stores 仅返回事件商店,但如果我将配置更改为 enabled: false 它将给我所有结果,包括已删除的项目,这是正确的。

现在我想要实现的是从前端传递一个查询参数,如 /stores?deleted=1 然后我想获取所有数据,如果没有 deleted=1 只找到活跃的项目

最佳答案

为什么不创建一个使用 Request 对象和 Doctrine 的实体管理器的事件监听器,并禁用这个过滤器?像这样:

class FilterListener implements EventSubscriberInterface
{
private $entityManager;

public function __construct(EntityManagerInterface $entityManager)
{
$this->entityManager = $entityManager;
}

public static function getSubscribedEvents(): array
{
return [
RequestEvent::class => 'onKernelRequest',
];
}

public function onKernelRequest(RequestEvent $event)
{
if (!$event->isMasterRequest()) {
return;
}

$request = $event->getRequest();
if ($request->query->getBoolean('deleted')) {
$this->entityManager->getFilters()->disable('softdeleteable');
}
}
}

关于php - api-platform 过滤掉软删除的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61774014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com