Добрый день. Отследил такой момент. При выполнении определенной страницы, у меня два запроса из двух разных контроллеров к одному репозитарию, но к разным методам. Обнаружилось то, что идет продолжение накладываний условий. Подробнее:
Мой репозитарий:
class ItemRepository extends EntityRepository
{
public $exist = null;
public function __construct($em, ClassMetadata $class)
{
parent::__construct($em, $class);
$this->exist = $this->createQueryBuilder('i')
->where('i.isActive = true');
}
public function findOneByUrl($url)
{
return $this->exist
->andWhere('i.url = :url')
->setParameter('url', $url)
->getQuery()->getSingleResult();
}
public function findTop()
{
return $this->exist
->getQuery()->getResult();
}
public function findAll()
{
return $this->exist
->getQuery()->getResult();
}
public function findByCategory($category)
{
return $this->exist
->andWhere('i.category = :category')
->setParameter('category', $category)
->getQuery()->getResult();
}
}
Так вот первый запрос идет
к findOneByUrl($url)
А потом, когда независимый контроллер обращается к
findByCategory($category),
то ко всем SQL условиям еще и наследуется ->andWhere('i.url = :url') из к findOneByUrl.
Почему при создании класса переменная не обнуляется?
Стоит кеширование php-fpm