Я хотел бы создать мое приложение вокруг Sonata, но я сталкиваюсь с некоторыми проблемами ...(Sonata) Невозможно создать отношение OneToOne, не имея администратор связанного с ним
Я продлил BaseUser создать свои собственные Пользователь и я сделали то же самое для UserAdmin. Я создал другую сущность, на которой Пользователь имеет отношение OneToOne, но я не хочу, чтобы этот объект был управляемым пользователем с Администратором, связанным с этим объектом.
Единственный способ, которым я хочу, чтобы пользователь, чтобы заполнить эти объекты будут в UserAdmin, я пытался что-то вроде этого:
protected function configureFormFields(FormMapper $formMapper){
parent::configureFormFields($formMapper);
$formMapper
->tab('Client details')
->with('Client Identity', array('class' => 'col-md-6'))
->add("test", EntityType::class, array(
"class" => "AppBundle:PersonDetails",
"property_path" => "details.test"
))
->end()
->end();
}
Вот мой класс User:
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToOne(targetEntity="PersonDetails")
* @ORM\JoinColumn(name="details_id", referencedColumnName="id")
*/
private $details;
public function __construct()
{
parent::__construct();
$this->details = new PersonDetails();
}
/**
* @return PersonDetails
*/
public function getDetails()
{
return $this->details;
}
/**
* @param PersonDetails $details
*/
public function setDetails($details)
{
$this->details = $details;
}
}
Единственное Я получаю выбор, который хочет, чтобы я выбрал существующий PersonDetails (я полагаю).
Как я могу это достичь? И, если это может быть легко достигнуто, почему он не появился в документации? Я думаю, что этот случай не очень редкости ..
Спасибо за вашу помощь