首先,我希望这个问题是一个相关问题,但如果不是,那么显然我的错是愚蠢/不够彻底搜索。
我在一个看似愚蠢的问题上被困了两天:我只想将一张或多张照片添加到我的自定义类中
现在简单的部分如下(据我所知):
现在就是这样:我想保存相关的"人员ID"在media__media表的相应列中
我无法找到一种方法来让人们成为"在相应的media__media表中注册。事物保持无效。
我检查过的内容:
我怀疑:不知怎的,我需要覆盖媒体的Admin类,以使字段“#34;听得见”#34;上课。我不知道怎么做,尽管我付出了最大的努力,但我在这个网站上找到的例子并没有帮助。
我能做什么:
现在你们不喜欢没有代码的问题,这是我的(带有我的composer.json的摘录,以防万一。)
composer.json(相关部分)
"sonata-project/admin-bundle": "^3.13",
"sonata-project/doctrine-orm-admin-bundle": "^3.1",
"sonata-project/user-bundle": "^3.2",
"sonata-project/easy-extends-bundle": "^2.1",
"sonata-project/classification-bundle": "^3.2",
"sonata-project/media-bundle": "^3.3",
"sonata-project/formatter-bundle": "3.*",
"sonata-project/intl-bundle": "^2.3",
"symfony/property-access": "^3.2",
"sonata-project/dashboard-bundle": "^0.1.0"
Media.php生活在Application Bundle中。 ORM风格。适当地注释我的知识。相关位:
/**
* One Media has one people
* @ORM\OneToOne(targetEntity="AppBundle\Entity\People", inversedBy="image")
* @ORM\JoinColumn(name="people_id", referencedColumnName="id")
*
*/
private $people;
People.php,再次相关部分(根据我的知识获取和吸引人)
/**
* One people has one image
* @ORM\OneToOne(targetEntity="Application\Sonata\MediaBundle\Entity\Media", mappedBy="people", cascade={"persist"})
*/
private $image;
PeopleAdmin.php中的字段效果很好,除非它不保留相关人员的ID
->add('image','sonata_type_model', array(
'required'=>false,
'by_reference'=>false,
))
public function prePersist($object)
{
foreach ($object->getImage() as $item) {
$item->setPeople($object);
}
}
public function preUpdate($object)
{
foreach ($object->getImage() as $item) {
$item->setPeople($object);
}
}
现在,当我这样做时,媒体部分的工作。东西是创造的,是美丽的(可能)。除了它不会持久存在与创建它的实体相关的任何内容。
奇怪(或者不是?我不熟悉这个调试工具),我在完成后得到了这个结果(或者我相信)。
Capture of the debugging screen of this form
非常感谢,人们(呃)。