У меня есть умение разработчика и сущности, у меня много навыков с платформой, языком и специальностью, и мне нужно создать форму для разработчика, разработчик может выбрать выбранные навыки, а когда выбранный, разработчик навыков может выбрать Платформы, язык и специальность для это умение. Если разработчик выбрал два навыка или более, у вас больше платформ, языка и специальности для выбранных. И я не знаю, как это создается в Symfony. Теперь я создаю форму только выбранные навыкиSymfony ManyToMany в форме
class DeveloperProfessionalSkillsType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name');
$builder->add('skills','entity',
array(
'class'=>'Artel\ProfileBundle\Entity\Skill',
'property'=>'skill',
'multiple'=>true,
)
);
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Artel\ProfileBundle\Entity\Developer',
'validation_groups' => array('professional_skills')
));
}
/**
* @return string
*/
public function getName()
{
return 'developer_professional_skills';
}
, но теперь у меня есть форма ошибки не действует, интересно, когда я добавляю «расширил» => правда, все отлично работает, но мне не нужно расширить мне нужно просто выбран поле: это моя сущность
class Skill
{
/**
* @ORM\ManyToMany(targetEntity="Artel\ProfileBundle\Entity\Skill", mappedBy="skills", cascade={"persist"})
*/
protected $developers;
/**
* @var \Artel\ProfileBundle\Entity\CodeDirectoryProgramLanguages
*
* @ORM\ManyToMany(targetEntity="CodeDirectoryProgramLanguages", inversedBy="skills", cascade={"persist"})
*/
protected $language;
/**
* @var \Artel\ProfileBundle\Entity\CodeDirectoryPlatforms
*
* @ORM\ManyToMany(targetEntity="CodeDirectoryPlatforms", inversedBy="skills", cascade={"persist"})
*/
protected $platforms;
/**
* @var \Artel\ProfileBundle\Entity\CodeDirectorySpecialities
*
* @ORM\ManyToMany(targetEntity="CodeDirectorySpecialities", inversedBy="skills", cascade={"persist"})
*/
protected $specialities;
и мое действие
public function submitProfessionalSkillsAction($securitytoken)
{
$em = $this->getDoctrine()->getManager();
$form = $this->createForm(new DeveloperProfessionalSkillsType(), $user->getDeveloper());
$form->handleRequest($request);
if ($form->isValid()) {
$em->flush();
Порекомендуйте, пожалуйста, как лучше решить эту проблему
Прошу прощения, но я не понимаю ваш вопрос ... – Lino
Как добавить навыки к разработчику с специальными платформами и языками? –