Подскажите пожалуйста. не совсем понимаю.
Я создал виртуальное поле
namespace App\Form;
use App\Entity\AdditionalCompany;
use App\Entity\AdditionalProduct;
use App\Repository\AdditionalProductRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class ProductsType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('products', EntityType::class,[
'class'=>AdditionalProduct::class,
'query_builder'=>function(AdditionalProductRepository $additionalProductRepository)
{
return $additionalProductRepository->findAllAdditionalProductsByIds([0]);
},
'choice_label'=>function(AdditionalProduct $additionalProduct){
$endStrArr = [60=>'(0,2 % в мес)', 56=>' (0,416% в мес)', 1=>'(0,8% в мес)', 7=>'(1% в мес)', 63=>'(500Р)'];
$endStr = $endStrArr[$additionalProduct->getId()]?? '';
return 'Активировать '.$additionalProduct->getName().' '.$endStr;
},
'choice_attr' => function() {
return ['class' => 'checkbox_additional'];
},
'multiple' => true,
'expanded' => true,
'mapped' => false,
'label'=>false,
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'inherit_data' => true,
]);
}
}
Подключил его к главным полям CompanyType
->add('additionalCompanies', ProductsType::class)
и после этого все работает. продукты добавляются. но у меня еще есть два поля
namespace App\Form;
use App\Entity\AdditionalCompany;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class AdditionalCompanyType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('is_default')
->add('is_forced')
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'inherit_data' => true,
]);
}
}
и мне его тоже надо подключить но он ссылается на сущность company а мне надо на сущность AdditionalCompany