Ich habe einige Verwirrung darüber, wie ein Filter mit einer Abfrage erstellen und einen Controller, der bereits vorhanden ist (mit KnpPaginator drin)Einfache Filter in symfony, wenn Abfrage und Steuerung bereits vorhanden
ich in meinem Repo habe eine Abfrage, Suche durch etwas, und in meinem Controller zwei Funktionen private
genannt resultsAction
und eine public
eine offreAction
genannt, die beide zusammen sind.
Gibt es eine Idee, wie man einen einfachen Filter erstellt? Ich folgte diesem tutorial, aber meine Abfrage existiert bereits in meinem Repo und es hat nicht funktioniert, als ich es anwendete.
Mein Repo
public function getQueryByTypeAndPro($type, User $user, $archive)
{
return $this->createQueryBuilder("opn")
->andWhere("opn.type = :type")
->setParameter("type", $type)
->andWhere("opn.resellerId = :reseller")
->setParameter("reseller", $user->getId())
->andWhere("opn.archive = :archive")
->setParameter('archive', $archive)
->orderBy("opn.dateCreation", "DESC")
->getQuery()
;
}
mein Controller
private function resultsAction(Request $request, User $user, $type, $archive)
{
$em = $this->getDoctrine()->getManager();
$paginator = $this->get('knp_paginator');
$qb = $em->getRepository("STUserBundle:Operation")->getQueryByTypeAndPro($type, $user, $archive);
$results = $paginator->paginate(
$qb,
$request->query->get('page',1),
$request->query->get('limit',50),
[
'defaultSortFieldName' => 'opn.dateCreation',
'defaultSortDirection' => 'desc'
]
);
return array("results" => $results, "archive" => $archive);
}
public function offreAction(Request $request, User $user, $archive = false)
{
return $this->resultsAction($request, $user, Operation::OFFRE_COMMERCIALE, $archive);
}
Soll ich eine neue Funktion (public) in meinem Controller erstellen, um diese Arbeit zu machen? oder kann ich es direkt in resultsAction tun, wo KnpPaginator ist?
Danke
Hallo und danke für Ihre Hilfe. aber es funktioniert nicht. 'findBy (array ('typ' => typ, 'resellerId' => resellerId, 'archiv' => archiv), array ('dateCreation' => DESC))' zeige typ, resellerId und archiviere als 'undefinierte konstante' I weiß nicht, wie kann ich tun –
undefined Konstante bedeutet, dass Sie Ihre Variablen nicht initialisiert haben. Bitte initialisieren Sie Ihre Variable, dann wird es sicher funktionieren. Nur um hart codierte Werte von Variablen zu debuggen. –
Wo und wie kann ich sie initialisieren, wenn mein Controller, meine Abfrage und Argumente bereits existieren? :/Ich bin ein wenig neu in der Codierung Ich verstehe nicht alles –