Это мой первый вопрос, поэтому прошу прощения за любые ошибки - в следующий раз я постараюсь их избежать. ; -)
Я написал специальный RegistrationFormType для FOSUserBundle. Эта форма обрабатывает - в дополнение к полям по умолчанию пакета - PlayerType. Этот PlayerType сам по себе снова содержит PlayerSkillsType. Здесь занятия:
class RegistrationFormType extends BaseType
{
public function buildForm(FormBuilder $builder, array $options)
{
parent::buildForm($builder, $options);
$builder->add('player', new PlayerType());
}
public function getName()
{
return 'signup_form';
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Acme\AcmeBundle\Entity\User',
);
}
}
class PlayerType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('firstname');
$builder->add('lastname');
$builder->add('age');
$builder->add('playerSkills', new PlayerSkillsType());
}
public function getName()
{
return 'player_form';
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Acme\AcmeBundle\Entity\Player',
);
}
}
class PlayerSkillsType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('tackling');
$builder->add('passing');
$builder->add('shooting');
}
public function getName()
{
return 'playerSkills_form';
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Acme\AcmeBundle\Entity\PlayerSkills',
);
}
}
/**
* @ORM\Entity
*/
class Player
{
/**
* @ORM\OneToOne(targetEntity="PlayerSkills", cascade={"persist"})
*
* @var PlayerSkills
*/
private $playerSkills;
}
/**
* @ORM\Entity
*/
class PlayerSkills
{
/**
* @ORM\OneToOne(targetEntity="Player", cascade={"persist"})
*
* @var Player
*/
private $player;
}
(я исключил геттеры и сеттеры и неважные свойства и методы.)
Пока все работает нормально, форма показывается и сохраняется. Теперь моя проблема в том, что после сохранения данных сущность PlayerSkills в данных пропускает ссылку на сущность Player.
Я думаю, мне нужно сообщить PlayerSkillsType, что он также добавит ссылку в построителе форм ..? А может это проблема в аннотациях Учения?
Любая подсказка очень ценится! : -)