Vì vậy, trong hành động chỉnh sửa của Quản trị viên Sonata, tôi đang cố gắng hiển thị các trường biểu mẫu khác nhau tùy thuộc vào tạo hoặc chỉnh sửa ngữ cảnh.Cách lấy đối tượng bên dưới trong lớp Quản trị của Sonata khi được gọi bởi sonata_type_admin?
Có thể một số nền trước ..
Tôi có thực thể Thư viện và thực thể CoverPhoto ràng buộc với OneToOne.
Thư viện ảnh:
/**
* @ORM\OneToOne(targetEntity="CoverImage", mappedBy="gallery", cascade={"all"}, orphanRemoval=true)
**/
private $cover;
CoverImage:
/**
* @ORM\OneToOne(targetEntity="Gallery", inversedBy="cover")
**/
private $gallery;
Dưới đây là coresponding GalleryAdmin lớp:
class GalleriesAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
-> add('name', null, array('label' => 'Nazwa'))
-> add('category', 'sonata_type_model', array('label' => 'Kategoria'), array('subject' => $this -> getSubject()))
-> add('cover', 'sonata_type_admin', array('label' => 'Okładka'))
-> add('images', 'sonata_type_collection', array('by_reference' => false, 'label' => 'Powiązane zdjęcia'), array(
'edit' => 'inline',
'sortable' => false,
'inline' => 'table',
))
;
}
//other stuff
}
Và ở đây chúng tôi đi với CoverImageAdmin:
class CoverImagesAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
-> add('path', 'thumbnail', array('label' => 'Miniatura'))
-> add('file', 'file', array('required' => false, 'label' => 'Plik'))
;
}
}
"Thumbnail" là lĩnh vực hình thức tùy chỉnh của tôi hiển thị thumbnail (cú sốc). Nhưng bây giờ tôi muốn trường này chỉ xuất hiện trong ngữ cảnh "chỉnh sửa".
này nên miếng bánh với
$this -> getSubject()
phương pháp quản lý lớp học và điều kiện. Thật không may khi tôi gọi getSubject() trong lớp CoverImagesAdmin được sử dụng để biểu mẫu lồng nhau, nó luôn trả về null. Điều tương tự với getParent();
Calling getForm() kết quả trong
Fatal error: Maximum function nesting level of '500' reached, aborting! in /home/flameheart/Projects/KolberPhotography/vendor/symfony/symfony/src/Symfony/Component /OptionsResolver/Options.php on line 350
Tôi đã cố gắng để gọi về tất cả các phương pháp quản lý và FormMapper chỉ để xác định bối cảnh hình thức nhưng đã kết thúc với không có gì.
Các bạn có biết cách giải quyết vấn đề này một cách rõ ràng không?
Chỉ để lưu nội dung, lỗi cấp cao nhất là làm với XDebug và không có gì để làm với Sonata Admin – frak