symfony relacion inversa OneToMany
en la practica existirá una relación (definida en la tabla) de tipo ManyToOne
pero cada relación se puede pensar también como de ida y vuelta, o en ambos sentidos.
Asi como muchas GenusNote se pueden referir a una Genus. (ManyToOne)
Una Genus puede tener muchos GenusNote (oneToMany)
Lo que nos permitirá obtener las notes desde genus.
este cambio no afectará la estructura de las tablas por lo que no se necesitará crear el archivo de migration.
class Genus{
...
/**
* @ORM\OneToMany(targetEntity="GenusNote", mappedBy="genus")
*/
private $notes;
public function __construct()
{
$this->notes = new ArrayCollection();
}
public function getNotes(){
return $this->notes;
}
...
}
notar que no se agregó el método setNotes(..)
ya que el seteo se hace sólo del lado del propietario.
en GenusNote agregamos esta pequeña modificación:
class GenusNote
{
...
/**
* @ORM\ManyToOne(targetEntity="Genus", inversedBy="notes")
* @ORM\JoinColumn(nullable=false)
*/
private $genus;
...
}
en el controller podemos tener algo asi:
class GenusController extends Controller{
...
/**
* @Route("/list-notes-by-genus")
*/
public function listAction()
{
$em = $this->getDoctrine()->getManager();
$genuses = $em->getRepository("AppBundle\Entity\Genus")->findAll();
foreach($genuses as $genus){
foreach ($genus->getNotes() as $note) {
dump($note);
}
}
return new Response("hecho!");
}
...
}
Suscribirse a:
Enviar comentarios (Atom)
linux ubuntu mint actualizar chrome
desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable
-
Vamos a crear un proyecto llamado SpringBoot01 para esto, -creamos un proyecto maven y configuramos el build path como vimos en el tutoria...
-
por consola y desde la raiz de tu proyecto php artisan --version
-
Integridad al nivel de la base de datos Oracle Oracle valida la integridad de la base de datos y presenta los siguientes mensajes de erro...
No hay comentarios:
Publicar un comentario