$repository = $this->getEntityManager()->getRepository('App\Entity\HolidayPackages');
$holiday_packages = $repository
->createQueryBuilder('hp')
->addSelect('hpt')
->innerJoin('hp.holiday_packages_translation', 'hpt')
->where('hpt.code = :code')
->setParameter('code', $language_code)
->andWhere('hpt.title LIKE :title')
->setParameter('title', $title . '%');
if (!empty($starting_date)) {
$repository
->andWhere('hp.starting_date = :starting_date')
->setParameter('starting_date', $starting_date);
}
$repository
->setFirstResult($offset)
->setMaxResults($limit)
->getQuery()
->getResult();
Я пытаюсь отфильтровать поиск. Как я могу проверить, пуст ли параметр, не добавляйте туда запрос?Доктрина, где, если пусто
Я следовал этой ссылке: doctrine2 - querybuilder, empty parameters
Но я не работает для меня.
Когда я пытаюсь как то, я получил сообщение об ошибке:
Неопределенный метод 'setFirstResult'. Имя метода должно начинаться с findBy или findOneBy!
Спасибо совет ..
Update
если добавить в командную строку setFirstResult
изменения ошибки:
Undefined метод 'GetQuery'. Имя метода должно начинаться с findBy или findOneBy!
Когда я использовал pdo, мне это может понравиться с использованием параметров привязки. Но я не знаю, как это сделать в Доктрине.
Это довольно простая ошибка. Спросите себя, что делает $ holiday_packages = $ repository-> createQueryBuilder ('hp'), и проблема будет очевидна. – Cerad
@Cerad, можете ли вы рассказать мне больше об этом довольно простой ошибке? Я действительно не могу понять, в чем проблема: – Ozgun
Что означает @Cerad, так это то, что вы должны использовать $ holiday_packages вместо $ repository во втором и третьем блоках кода, и ваша проблема будет решена. – OlivierC