2017-02-18 6 views
2

i löschen möchten ein Produkt nach einem bekannten Zeitpunkt dies ist mein Controller beginnen muss:nicht definierte Methode Der Name der Methode entweder mit findBy oder findOneBy

public function indexAction() 
{ 
    $em = $this->getDoctrine()->getManager(); 
    $productsInitial = $em->getRepository('ProductBundle:Product')->findAll(); 

    $productsAfterdelete=$em->getRepository('ProductBundle:Product')->deleteApresDure($productsInitial); 


    return $this->render('product/index.html.twig', array(
     'products' => $productsAfterdelete, 
    )); 
} 

meine Funktion in Repository-Klasse:

public function deleteApresDuree($products) 
    { 
     $datenow=new \DateTimeImmutable(); 
     foreach ($products as $produit){ 
      $datecreation=$produit->getCreatedDate(); 
      $result = $datecreation->format('Y-m-d'); 
      $date_fin = date('Y-m-d', strtotime($result.' +15 days')); 
      if ($datenow>$date_fin) 
      { 
       unset($products[$produit]); 
       array_values($products); 

      } 
     } 
    return $products; 

    } 

/** * Produit * @ORM \ Entity (repositoryClass = "\ ProductBundle \ Repository \ ProductRepository") * @Vich \ Hochladbare @ORM * \ Table (name = "produit") */

Fehler:

nicht definierte Methode 'deleteApresDure'. Der Methodenname muss mit findBy oder findOneBy beginnen!

please JEDE HILFE !!

+0

Die Fehlermeldung bedeutet, dass Ihr Repository nicht richtig auf die Entität ändern sollte abgebildet wird. Stellen Sie sicher, dass der Cache gelöscht wurde und Sie keine Tippfehler haben. Andere obskure Dinge könnten auch falsch sein. Es gibt mehrere hundert andere Fragen mit genau dem gleichen Problem. – Cerad

+0

Ich erwähne das! dass ich kein anmerkungsproblem hatte, habe ich in den mehreren hundert anderen fragen gesucht und es war ein anderes problem. –

+0

egal wie ich meine Funktion auf den Controller kopiert und es funktionierte thnx übrigens –

Antwort

1

Sie repositoryClass="\ProductBundle\Repository\ProductRepository mit repositoryClass="ProductBundle\Repository\ProductRepository

+0

danke, aber ich habe alle Möglichkeiten für die Annotation gleichen Fehler –

+0

sicher sein, Ihren Cache zu reinigen, oder den Test in die Entwicklungsumgebung (die den Cache immer neu generiert). – ste

+0

Wenn es nicht funktioniert posten Sie Ihre ** vollständige ** Entity und Repository-Datei. – ste

Verwandte Themen