2017-02-18 32 views
2

я хочу, чтобы удалить продукт после известной даты это мой контроллер:Неопределенный метод Имя метода должно начинаться с findBy или 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, 
    )); 
} 

моя функция в классе репозитория:

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 \ загружаемая * @ORM \ Table (имя = "Produit") */

ошибка:

Неопределенный метод 'deleteApresDure'. Имя метода должно начинаться с findBy или findOneBy!

просьба ANY HELP !!

+0

сообщение об ошибке означает, что ваш репозиторий не правильно отображается в сущности. Убедитесь, что кеш был очищен и у вас нет опечаток. Другие более неясные вещи также могут быть неправильными. Есть несколько сотен других вопросов с одной и той же проблемой. – Cerad

+0

я упоминаю это! что у меня не было какой-либо проблемы с аннотацией, я искал в другом вопросе других хандреров, и это была другая проблема. –

+0

в любом случае я скопировал свою функцию на контроллер, и это сработало thnx, кстати –

ответ

1

вы должны изменить repositoryClass="\ProductBundle\Repository\ProductRepository с repositoryClass="ProductBundle\Repository\ProductRepository

+0

спасибо, но я сделал все возможности для аннотации той же ошибки –

+0

не забудьте очистить свой кеш или выполнить тест в окружение dev (которое всегда восстанавливает кеш). – ste

+0

если он не работает, разместите свой ** полный ** файл сущности и репозитория. – ste