php – Uma vez que utilizar filtros com rotas personalizadas …

php - Como aplicar filtros com rotas personalizadas ...
Sua visita nos ajuda a continuar oferecendo o melhor para você! itemprop="text">

Eu tento utilizar filtros com Symfony 6 + api apltform 3 com rota personalizada. Mas unicamente a paginação Sua visita nos ajuda a continuar oferecendo o melhor para você! aplicada. A rota padrão está funcionando muito

Meu código atual:

Entidade:

#[ORMTable(name: 'stb_maxi_dev.offer_demand')]
#[ApiResource(
    operations: [
        new GetCollection(),
        new Get(),
        new Post(),
    Sua visita nos ajuda a continuar oferecendo o melhor para você!    new Patch(),
        new GetCollection(
            name: 'api_export_offers',
            controller: OfferController::class,
            output: false
        )
    ],
    routePrefix: '/maxi',
    normalizationContext: ['groups' => ['offers:list', 'status:list', 'source:list', 'tn:list', 'as:list', 'country:list', 'category:list', 'product:list', 'logs:list']],
    denormalizationContext: ['groups' => ['offers:write']],
    paginationEnabled: false
)]
#[ApiFilter(NumericFilter::class, properties: ['od_status'])]
#[ApiFilter(SearchFilter::class, properties: [
    'od_source.id' => 'exact',
    'od_country.id' => 'exact',
    'od_category.id' => 'exact',
    'od_activity_sector.id' => 'exact',
    'od_product.id' => 'exact',
    'od_team.id' => 'exact',
    'od_offer_status.id' => 'exact',
    'od_rfq_status.id' => 'exact',
])]
#[ApiFilter(DateFilter::class, properties: ['od_creation_date', 'receivedAt', 'od_date_acknowledgment_receipt', 'date_conctacting'])]
#[ApiFilter(GroupFilter::class, arguments: ['overrideDefaultGroups' => false])]
class OfferController extends AbstractController
{
    private $collectionProvider;
    private $entityManager;
    public function __construct(CollectionProvider $collectionProvider, EntityManagerInterface $entityManager)
    {
        $this->collectionProvider = $collectionProvider;
        $this->entityManager = $entityManager;
    }
    #[Route('/maxi/offers/export', name: 'api_export_offers', methods: ['GET'])]
    public function exportOffers(Request $request, Utils $utils)
    {
        $filters = $request->query->all();
        $operation = new GetCollection(class: OfferDemand::class);
        $offerdemands = $this->collectionProvider->provide($operation, [], ['filters' => $filters]);
    
      // CODE TO EXPORT IN XSLX
      return $this->file($temp_file, $fileName, ResponseHeaderBag::DISPOSITION_INLINE);
    }
}

É provável utilizar todos os filtros porquê o ponto de extremidade de coleta da plataforma de API padrão?

Obrigado !

Cedrico

Tags:

Crédito: Manadeira Original

Adriano Pina

Adriano Pina

Análise de Sistemas | SEO e Google Ads | Fundador da Loja Script PHP Aqui & Marca Shoslh de tecnologia

Especialista em transformar ideias em soluções digitais e acelerar o crescimento online.

Deixe um comentário

Tem perguntas? Nos envia sua mensagem 24/7!

(17) 99100-0874

Endereço & Contato

Centro, Interior de São Paulo
E-mail: [email protected]

Links Úteis
BAIXAR APP | SCRIPT PHP AQUI
Certificados
0
    0
    Seu carrinho
    Seu carrinho está vazio

    Usamos cookies para garantir que oferecemos a melhor experiência em nosso site. 

       

    X

    Clique em um de nossos representantes abaixo para conversar no WhatsApp ou envie um email para: 📧 [email protected]

    Precisa de ajuda fale conosco?