Я делал небольшое исследование по Вопросам Доктрины, поскольку мне нужно было получить некоторые результаты на основе двух статей, в данном случае "Тип" и "Клиент". Я читал о Magic Finders на этой странице и использовал эту логику для создания следующего вызова:
$collections = $repo->findByTypeAndClient('collection',$client);
Поскольку в моей таблице есть поля типа type и client. Однако, когда я запускаю скрипт, я получаю следующую ошибку:
Entity 'AppBundle\Entity\CollectionDelivery' не имеет поля 'typeAndClient'. Поэтому вы не можете вызвать 'findByTypeAndClient' в репозитории сущностей
что заставляет меня думать, что я, возможно, сделал что-то неправильно или, может быть, я пропустил что-то очевидное?
Я использую Symfony2 - любая помощь ценится! Спасибо!
Да, ты сделал что-то неправильно ^^
Магические методы работают только в одном поле вашего объекта. Ты можешь сделать:
$collections = $repo->findByType('collection');
$collections = $repo->findByClient($client);
Но если вам нужна пользовательская находка по типу и клиенту, вы должны добавить метод в свое репо:
public function findByTypeAndClient($type, $client) {
$qb = $this->createQueryBuilder('c');
$qb->where('c.type = :type')
->where('c.client = :client')
->setParameter(':type', $type)
->setParameter(':client', $client);
return $qb->getQuery()->getResult();
}
findByTypeAndClient()
должен быть методом вашего CollectionDeliveryRepository.