Api-Platform中的Doctrine过滤器不在itemOperations中起作用。
创始人
2024-09-07 05:00:36
0

在使用 Api-Platform 构建 API 的过程中,有时需要使用 Doctrine 过滤器来限制查询结果。但是,可能会发现在使用 itemOperations 时,这些过滤器似乎不起作用。

这是因为 Api-Platform 使用了表格化查询语言 (DQL) 来处理 itemOperations,而 Doctrine 过滤器仅应用于实体的开发时查询。因此,需要使用自定义操作和控制器来应用过滤器。

下面是一个示例代码,演示了如何使用自定义操作和控制器来应用过滤器:

  1. 首先,在实体类中定义过滤器:

use ApiPlatform\Core\Annotation\ApiResource; use Doctrine\ORM\Mapping as ORM; use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;

/**

  • @ApiResource(
  • itemOperations={
    
  •     "get"={
    
  •         "controller"=MyEntityGetController::class,
    
  •     },
    
  •     "my_custom_operation"={
    
  •         "method"="GET",
    
  •         "path"="/my_entities/{id}/my_custom_operation",
    
  •         "controller"=MyEntityCustomController::class,
    
  •     }
    
  • },
    
  • attributes={
    
  •     "filters"={SearchFilter::class}
    
  • }
    
  • )
  • @ORM\Entity() */ class MyEntity { // ... }
  1. 然后,在控制器中应用过滤器:

namespace App\Controller;

use App\Entity\MyEntity; use Doctrine\ORM\QueryBuilder; use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface; use ApiPlatform\Core\Exception\ResourceNotFoundException; use ApiPlatform\Core\Exception\RuntimeException; use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response;

class MyEntityGetController extends AbstractController { public function __invoke(MyEntity $data): MyEntity

相关内容

热门资讯

一分钟带你了解(云扑克clou... 一分钟带你了解(云扑克cloudpoker)外挂透明挂辅助脚本(辅助挂)一直真的有挂(2023已更新...
必备辅助推荐(WPk)外挂透明... 必备辅助推荐(WPk)外挂透明挂辅助挂(软件透明挂)果然真的有挂(2025已更新)(微博热搜)一、A...
终于知道(we poker)外... 终于知道(we poker)外挂透明挂辅助器(智能ai代打)的确真的有挂(2025已更新)(抖音)1...
必备辅助推荐(pokermas... 必备辅助推荐(pokermaster)外挂透明挂辅助app(透视辅助)都是真的有挂(2025已更新)...
重大科普(aapoker)外挂... 重大科普(aapoker)外挂透明挂辅助机制(透视辅助)本来真的有挂(2021已更新)(头条)1、重...
总算明白(智星德州)外挂透明挂... 总算明白(智星德州)外挂透明挂辅助器(透视)一贯真的有挂(2023已更新)(知乎);1、实时开挂更新...
最新技巧(wepOke)外挂透... 最新技巧(wepOke)外挂透明挂辅助app(辅助挂)都是真的有挂(2022已更新)(今日头条)1、...
每日必看教程(epoker)外... 每日必看教程(epoker)外挂透明挂辅助机制(辅助挂)一直真的有挂(2025已更新)(微博热搜);...
每日必看推荐(聚星扑克德州)外... 每日必看推荐(聚星扑克德州)外挂透明挂辅助脚本(透视辅助)就是真的有挂(2022已更新)(哔哩哔哩)...
盘点几款(约局吧)外挂透明挂辅... 盘点几款(约局吧)外挂透明挂辅助插件(透视辅助)的确真的有挂(2021已更新)(哔哩哔哩)1、玩家可...