У меня есть объект с именем Profile, имеющий отношение к Category.Обе области охватываются company_id.
Когда я создаю новый профиль, я хочу показать возможные категории только из моего company_id.
В репозитории CategoryRepositor используется следующий метод:
/**
* @return Category[] Returns an array of Category objects
*/
public function findByCompany($value)
{
dump($value);
return $this->createQueryBuilder('p')
->where('p.company = :val')
->setParameter('val', $value)
->getQuery()
->getResult()
;
}
Метод работает корректно при использовании из индекса категории, где он перечисляет категории моей компании.
Но нет, при создании профиля мне нужно получить отношение.
Форма ProfileType имеет видследует:
$builder
->add('name')
->add('type')
->add('serial')
->add('sgin')
->add('sensor', EntityType::class, [
'class'=>'App\Entity\Sensor',
'choice_label' => 'name',
])
->add('category', EntityType::class, [
'class'=>'App\Entity\Category',
'choice_label' => 'name',
'query_builder' => function (CategoryRepository $er) use($user) {
return $er->findByCompany($user);
},
])
, насколько я могу судить, $ user здесь должен содержать $ this-> getuser () (потому что из него я могу вызвать getCompany) или передать всю сущность компании.Сама передача идентификатора, похоже, не работает, я попытался сделать это вручную.