El concepto dice: una relacion bidireccional tiene un lado propietario y otro inverso en cambio el unidireccional solo tiene un lado propietario. Entonces el lado propietario determina las modificaciones de la relacion en la base de datos.
yo tengo la siguiente tabla departamento
Cita:
donde el lado propietario sería id y el inverso departamento_id las relaciones serían OneToMany bidireccional por lo que generé este modelo para representarlo:+--------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+----------------+
| id | int(4) | NO | PRI | NULL | auto_increment |
| descripcion | varchar(200) | YES | | NULL | |
| departamento_id | int(4) | YES | | NULL | |
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+----------------+
| id | int(4) | NO | PRI | NULL | auto_increment |
| descripcion | varchar(200) | YES | | NULL | |
| departamento_id | int(4) | YES | | NULL | |
Código PHP:
, tengo un mensaje de Creation Error en doctrineVer original
class Departamento { /** * @var integer * @OneToMany(targetEntity="departamento", inversedBy="departamento_id") * @JoinColumn(name="id", referencedColumnName="departamento_id") * * @Column(name="id", type="integer", nullable=false) * @Id * @GeneratedValue(strategy="IDENTITY") */ private $id; /** * @var string * * @Column(name="descripcion", type="string", length=200, nullable=false) */ private $descripcion; /** * @var integer * @ManyToOne(targetEntity="departamento",mappedBy="id") * @Column(name="departamento_id", type="integer", nullable=false) */ private $departamentoId; ....
Cita:
[Creation Error] The annotation @OneToMany declared on property Entities\Departamento::$id does not have a property named "inversedB
y". Available properties: mappedBy, targetEntity, cascade, fetch, orphanRemoval, indexBy
y". Available properties: mappedBy, targetEntity, cascade, fetch, orphanRemoval, indexBy