Php 了解在双向关系中拥有方是如何工作的

Php 了解在双向关系中拥有方是如何工作的,php,symfony,doctrine-orm,entity,Php,Symfony,Doctrine Orm,Entity,我正在使用php应用程序/控制台原则:schema:validatetask验证项目模式(代码不是我的,我只是想让它正常工作)。我能看到的一个常见信息是: 字段Mapyet\afiliadbundle\Entity\Widget#negocio位于双向关系的拥有方,但指定 目标实体上的mappedBy关联 Mapyet\AfiliadBundle\Entity\Negocio#不包含所需的 “inversedBy”属性 这就是在Widget.php实体中定义$negocio的方式: /**

我正在使用
php应用程序/控制台原则:schema:validate
task验证项目模式(代码不是我的,我只是想让它正常工作)。我能看到的一个常见信息是:

  • 字段Mapyet\afiliadbundle\Entity\Widget#negocio位于双向关系的拥有方,但指定 目标实体上的mappedBy关联 Mapyet\AfiliadBundle\Entity\Negocio#不包含所需的 “inversedBy”属性
这就是在
Widget.php
实体中定义
$negocio
的方式:

/**
 * @ORM\ManyToOne(targetEntity="Negocio", mappedBy="widget")
 */
private $negocio;
/**
 * @ORM\OneToMany(targetEntity="Widget", inversedBy="negocio")
 */
private $widget;
这就是在
Negocio.php
实体中定义
$widget
的方式:

/**
 * @ORM\ManyToOne(targetEntity="Negocio", mappedBy="widget")
 */
private $negocio;
/**
 * @ORM\OneToMany(targetEntity="Widget", inversedBy="negocio")
 */
private $widget;
这个定义有什么错

将它们反向:

Widget.php

/**
 * @ORM\ManyToOne(targetEntity="Negocio", inversedBy="widget")
 */
private $negocio;
/**
 * @ORM\OneToMany(targetEntity="Widget", mappedBy="negocio")
 */
private $widget;
Negocio.php

/**
 * @ORM\ManyToOne(targetEntity="Negocio", inversedBy="widget")
 */
private $negocio;
/**
 * @ORM\OneToMany(targetEntity="Widget", mappedBy="negocio")
 */
private $widget;

此注释<代码>注释异常:[创建错误]在属性Mapyet\AfiliadBundle\Entity\Negocio::$widget上声明的注释@ORM\OneToMany没有名为“inversedBy”的属性。可用属性:mappedBy、targetEntity、cascade、fetch、orphaneremove、indexBy@ReynierPM,因此可能尝试执行
rm-rf-app/cache/dev
并再次运行
/app/console d:s:v
。你的代码看起来还可以。这非常罕见,现在探查器说这是
关联Mapyet\AfiliadBundle\Entity\Negocio#小部件指的是不存在的反向侧字段Mapyet\AfiliadBundle\Entity\widget#negocios。
这可能是因为没有
s的键入
Negocio