Составление карты формы в Symfony2

Я хотел бы отобразить сущность формы самостоятельно. Дело в том, что я работаю с 36 000 городов в базе данных, и Doctrine не возвращает никакого результата, когда я выполняю запрос с помощью findBy. Но я настроил это, написав свои собственные методы.

Проблема в форме, которую мне нужно запросить для города через поле сущности (потому что данных много, я использую select2 с данными пульта). Пока нет проблем, но когда я отправляю форму, Symfony не может привязать идентификатор города к записи в базе данных из-за отсутствия результата классического метода Doctrine.

Итак, мой вопрос: как я могу сказать Symfony использовать метод моего хранилища вместо метода Doctrine для привязки моих данных?

Большое спасибо ! И хорошего дня;)

0

Решение

Метод findBy() запрашивать параметр массива иногда люди пропускают это:

$result = $this->getDoctrine()->getManager()
->getRepository("AcmeDemoBundle")->findBy(array(
"city" => $city)
);

Если вы хотите использовать репозиторий, вам просто нужно сопоставить его с вашим классом:

/**
* @ORM\Entity(repositoryClass="Acme/DemoBundle/Repository/CountryRepository")
*/
class Country
{ ... }

Затем в

class CountryRepository extends EntityRepository
{
public function getMySpecificCity($city)
{
$qb = $this->createQueryBuilder('c');
$cities = $qb->select(*)
->where("c.city =:city ")->setParameter('city', $city)
->getQuery()
->getResult();

return $cities;
}
...
}

Таким образом, вы можете использовать его следующим образом:

$result = $this->getDoctrine()->getManager()
->getRepository("AcmeDemoBundle")->getMySpecificCity($city);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]