Php API平台-始终在自定义操作上应用筛选器

Php API平台-始终在自定义操作上应用筛选器,php,api-platform.com,Php,Api Platform.com,我在我的实体上有一个自定义收集操作(/api/posts/active),我希望始终对其应用一些过滤条件: 仅获取处于活动状态的=true 仅获取那些具有Online直到>now()的文件 如何仅针对此特定的采集操作,而不是所有操作执行此操作 另外,在默认情况下如何实现这些过滤器,而不依赖于查询字符串,如/posts/:id/active?active=true 我已经阅读了有关过滤的文档,但我真的很困惑,因为他们从来没有提到只过滤特定的操作或默认情况下应用过滤器,没有查询字符串。我认为这里不需

我在我的实体上有一个自定义收集操作(
/api/posts/active
),我希望始终对其应用一些过滤条件:

  • 仅获取
    处于活动状态的
    =true
  • 仅获取那些具有
    Online直到
    >now()的文件
    如何仅针对此特定的
    采集操作
    ,而不是所有操作执行此操作

    另外,在默认情况下如何实现这些过滤器,而不依赖于查询字符串,如
    /posts/:id/active?active=true


    我已经阅读了有关过滤的文档,但我真的很困惑,因为他们从来没有提到只过滤特定的操作或默认情况下应用过滤器,没有查询字符串。

    我认为这里不需要过滤器。您可以通过自定义操作(请参见文档中的内容)实现您的目标。然后,在u_invoke方法中,使用PostRepository中的qustom查询获取活动帖子的集合,可以通过在自定义操作构造函数中注入以下内容来检索:

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

    这是定制扩展()的典型用例