关联 \Entity\Specialists#images 指的是不存在的拥有方字段 Application\Sonata\MediaBundle\Entity\Media#spec
The association \Entity\Specialists#images refers to the owning side field Application\Sonata\MediaBundle\Entity\Media#spec which does not exist
class Media extends BaseMedia
/**
* @var Specialists
*
* @ORM\ManyToOne(targetEntity="Specialists", inversedBy="images")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="spec", referencedColumnName="id")
* })
*/
private $spec;
class Specialists
/**
* @var Media
*
* @ORM\OneToMany(targetEntity="Application\Sonata\MediaBundle\Entity\Media", mappedBy="spec")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="images", referencedColumnName="id")
* })
*/
private $images;
在 php 应用程序/控制台学说之后:架构:验证错误
[Mapping] FAIL - The entity-class 'Specialists \ SpecialistsBundle \ Entity \ Specialists' mapping is invalid:
* The association Specialists \ SpecialistsBundle \ Entity \ Specialists # images refers to the owning side field Application \ Sonata \ MediaBundle \ Entity \ Media # spec which does not exist.
我将不胜感激
媒体包最初使用 XML 格式,也许您必须通过修改 xml 配置文件来定义您的媒体实体映射信息
试试这个,
class Media extends BaseMedia
{
/*
* ....
*/
private $spec;
//others attributes, getters and setters there
// ...
}
然后更改 xml 配置文件最初位于:"src/Application/Sonata/MediaBundle/Resources/config/doctrine/Media.orm.xml"
它看起来像
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xsi="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity
name="Application\Sonata\MediaBundle\Entity\Media"
table="media__media"
>
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>
<!-- then you add this -->
<many-to-one field="spec" target-entity="\path-to\Specialists" inversed-by="images">
<join-column name="spec" referenced-column-name="id" />
</many-to-one>
<!-- end -->
</entity>
</doctrine-mapping>
然后尝试更新你的学说模式
class Media extends BaseMedia
/**
* @var Specialists
*
* @ORM\ManyToOne(targetEntity="Specialists", inversedBy="images")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="spec", referencedColumnName="id")
* })
*/
private $spec;
class Specialists
/**
* @var Media
*
* @ORM\OneToMany(targetEntity="Application\Sonata\MediaBundle\Entity\Media", mappedBy="spec")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="images", referencedColumnName="id")
* })
*/
private $images;
在 php 应用程序/控制台学说之后:架构:验证错误
[Mapping] FAIL - The entity-class 'Specialists \ SpecialistsBundle \ Entity \ Specialists' mapping is invalid: * The association Specialists \ SpecialistsBundle \ Entity \ Specialists # images refers to the owning side field Application \ Sonata \ MediaBundle \ Entity \ Media # spec which does not exist.
我将不胜感激
媒体包最初使用 XML 格式,也许您必须通过修改 xml 配置文件来定义您的媒体实体映射信息
试试这个,
class Media extends BaseMedia
{
/*
* ....
*/
private $spec;
//others attributes, getters and setters there
// ...
}
然后更改 xml 配置文件最初位于:"src/Application/Sonata/MediaBundle/Resources/config/doctrine/Media.orm.xml" 它看起来像
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xsi="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity
name="Application\Sonata\MediaBundle\Entity\Media"
table="media__media"
>
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>
<!-- then you add this -->
<many-to-one field="spec" target-entity="\path-to\Specialists" inversed-by="images">
<join-column name="spec" referenced-column-name="id" />
</many-to-one>
<!-- end -->
</entity>
</doctrine-mapping>
然后尝试更新你的学说模式