この投稿を見て、それは可能だと思いますが、彼がエンティティをどのように構成したかはわかりません。
Sonata Admin バンドル タイプ コレクションのカスタマイズ
私は彼と同じ管理者ファイルを持っています。しかし、これらの他の投稿では、この機能がソナタではサポートされていないことがわかりました。
https://github.com/sonata-project/SonataAdminBundle/issues/262
https://github.com/sonata-project/SonataAdminBundle/issues/802
誰かがそれを理解するために何かを提案してください!
更新: (Dour High Arch)
.../SimBundle/Admin/EmpleadoAdmin.php
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->with('Tecnico')
->add('empleadoTecnico', 'sonata_type_collection'),
array('edit' => 'inline','sortable'=>'pos','inline' => 'table'))
->end()
;
}
.../SimBundle/Admin/TecnicoAdmin.php
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('salarioHora',null,array('label'=>'Salario por hora:'))
->with('Experiencia')
->add('experienciaLaboral', 'sonata_type_collection', array('label'=>'Experiencia Laboral:'),
array('edit' => 'inline','sortable'=>'pos','inline' => 'table'))
->end()
;
}
.../SimBundle/Admin/EmpExperienciaLaboralAdmin.php
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('nombreJefeInmediato',null,array('label'=>'Nombre Jefe Inmediato:'))
;
}
エンティティ
...\SimBundle\Entity;
クラスEmpEmpleado {
/**
*
* @ORM\OneToMany(targetEntity="Tecnico", mappedBy="idEmpleado", cascade={"all"}, orphanRemoval=true)
*
*/
private $empleadoTecnico;
}
...\SimBundle\Entity;
クラステクニコ{
/**
* @var \EmpEmpleado
*
* @ORM\OneToOne(targetEntity="EmpEmpleado", inversedBy="empleadoTecnico")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="id_empleado", referencedColumnName="id")
* })
*/
private $idEmpleado;
/**
*
* @ORM\OneToMany(targetEntity="EmpExperienciaLaboral", mappedBy="idEmpleado", cascade={"all"}, orphanRemoval=true)
*
*/
private $experienciaLaboral;
}
...\SimBundle\Entity;
クラスEmpExperienciaLaboral {
/**
* @var \Tecnico
*
* @ORM\ManyToOne(targetEntity="Tecnico", inversedBy="experienciaLaboral")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="id_empleado", referencedColumnName="id")
* })
*/
private $idEmpleado;
}
experienciaLaboral を追加しようとすると、失敗しました: 致命的なエラー: 非オブジェクトのメンバー関数 getName() への呼び出し
スキーマは次のようになります。
EmpEmpleado --> (OneToMany) --> Tecnico --> (OneToMany) --> EmpExperienciaLaboral
(申し訳ありませんが、画像を載せることができません。これは私の最初の質問であり、10の評判はありません)