Symfony 3. Связь таблиц many-to-one

419
10 июня 2017, 14:10

Делал выборку данных

$qb =  $this->createQueryBuilder('sa');
    $result = $qb->select('sa.kpi, r')
        ->where('sa.year =:year')
        ->andWhere('sa.week =:week')
        ->andWhere('sa.branch IS NULL')
        ->leftJoin('AppBundle:Region', 'r', 'WITH','r.id = sa.region')
        ->setParameters(array(
            'year' => $year,
            'week' => $week,
        ))
        ->getQuery()
        ->getResult(Query::HYDRATE_ARRAY);

для leftjoin сделал связь многие-к-одному

manyToOne:
    region:
        targetEntity: AppBundle\Entity\Region
        joinColumn:
            name: region
            referencedColumnName: id

выборка работает, сейчас пришлось записать данные в таблицу

                    $sa = new SA();
                    $sa->setDate(new \DateTime("now"));
                    $sa->setYear($this->year);
                    $sa->setWeek($this->week);
                    $sa->setRegion($region_value['id']);
                    $sa->setBranch($branch_value['id']);
                    $sa->setCity($city_value['id']);
                    $sa->setKpi($kpi);
                    $em->persist($sa);
                    $em->flush();

и теперь ругается на строку $sa->setRegion($region_value['id']);

Expected value of type "AppBundle\Entity\Region" for association field "SABundle\Entity\SA#$region", got "string" instead.

Я так понимаю, что вместо значения id нужно в setRegion передать объект AppBundle\Entity\Region, но что-то не понимаю как.

Answer 1

Сам и отвечу

$r = $repoRegion->find($region_value['id']);
$sa->setRegion($r);
$b = $repoBranch->find($branch_value['id']);
$sa->setBranch($b);
$c = $repoCity->find($city_value['id']);
$sa->setCity($c);
READ ALSO
Почему при смене языка не меняется название Фрагмента?

Почему при смене языка не меняется название Фрагмента?

Почему при смене языка не меняется название Фрагмента?

333
Создание папок в Windows из PL/SQL

Создание папок в Windows из PL/SQL

Стоит задача написать PL/SQL процедуру, которая будет создавать пустую папку по указанному путиЯ знаю что для этого можно использовать класс...

256
Как изменить стиль в NetBeans?

Как изменить стиль в NetBeans?

Я новичок в Java, да и в программировании вообщеНачал её изучать, сейчас разбираюсь с GUI, пишу простенький калькулятор, но почему то в GUI билдере...

384