У меня есть команда tryng для доступа к методу репозитория. Но я не могу добиться успеха.
services.yml
app.command.app_checkOfferDemand:
class: AppRefactoredBundle\Command\CheckOfferAndDemand
arguments: ['@doctrine.orm.entity_manager']
tags:
- { name: console.command }
app_OfferRepository
class app_OfferRepository extends \Doctrine\ORM\EntityRepository
{
private function checkAndUpdate(){
$em = $this->getContainer()->get('doctrine')->getManager();
$qb = $em->createQueryBuilder();
$q = $qb->update('app_Offer', 'o')
->set('o.status_id', 2)
->where('o.createdAt < DATE_SUB(NOW(), INTERVAL 2 HOUR)')
->getQuery();
return $q->execute();
}
}
CheckOfferAndDemand
class CheckOfferAndDemand extends Command{
private $em;
public function __construct(EntityManager $em)
{
parent::__construct();
$this->em=$em;
}
protected function configure()
{
// On set le nom de la commande
$this->setName('app:check_OfferDemand');
// On set la description
$this->setDescription("Permet de controler le timeout des offres et demandes");
// On set l'aide
$this->setHelp("Cette commande ne prend pas d'argument et travailler sur toutes les offres et demandes");
}
public function execute(InputInterface $input, OutputInterface $output){
$output->writeln("update des offres");
$this->em->getRepository('AppRefactoredBundle:app_Offer')->checkAndUpdate();
$output->writeln("update des demandes");
$this->em->getRepository('AppRefactoredBundle:app_Demand')->checkAndUpdate();
$this->em->flush();
$output->writeln("DONE");
}
}
Команда сама по себе работает (выполняется первое обновление печати).
Но тогда ошибка срабатывает
Неопределенный метод 'checkAndUpdate'. Имя метода должно начинаться с findBy, findOneBy или countBy!
Кажется, что сущности тоже хорошо объявлены
/**
* app_Offer
*
* @ORM\Table(name="app__offer")
* @ORM\Entity(repositoryClass="AppRefactoredBundle\Repository\app_OfferRepository")
*/
class app_Offer
Спасибо за вашу помощь.