我在 Page、PageMedia 和 Sonata Media Bundles Media 类之间存在一对多对一的关系。我将插入到 PageMedia 和 Page 但由于某种原因,页面媒体表中的页面 id 总是出现空值。
这是我正在尝试使用的对象的相关部分。
class Page {
/** @ORM\OneToMany(targetEntity="PageMedia", mappedBy="page", cascade={"persist"} */
protected $pageMedias;
}
class PageMedia {
/** @ORM\ManyToOne(targetEntity="Page", cascade={"all"}, inversedBy="pageMedias") ) */
protected $page;
/** @ORM\ManyToOne(targetEntity="Application\Sonata\MediaBundle\Entity\Media", cascade={"persist"}) */
protected $media;
}
class PageAdmin extends Admin {
protected function configureFormFields(FormMapper $form) {
$form
->with('Media')
->add('pageMedias', 'sonata_type_collection',
array('by_reference' => false ), array(
'edit'=>'inline',
'inline' => 'table',
'sortable' => 'sortOrder'
))
->end();
}
}
class PageMediaAdmin extends Admin {
protected function configureFormFields(FormMapper $form) {
$form->add('media', 'sonata_type_model_list',
array(),
array('link_parameters'=>array('context' =>'default')));
}
}
也许有人可以帮我解决问题?我在这里完全不知所措......即使在页面和页面媒体之间的 joinColumn 添加了一个可为空的 fale 之后,我现在也无法插入,我错过了什么?
再次感谢。