solo hay 2 tipos de relaciones
1) ManyToOne
2) ManyToMany
tablas Genus y GenusNote
1 GenusNote hace referencia a 1 Genus, 1 Genus puede tener varias GenusNote
class GenusNote{
...
/**
* @ORM\ManyToOne(targetEntity="Genus")
*/
private $genus;
...
}
observaciones:
1) para identificar cual es la tabla/entidad con la relacion ManyToOne, sólo debemos pensar en cual de ellas tendrá en sus atributos la foreign key.
2)por default el campo genus_id se le asigna el valor de null, esto no es correcto, entonces modifiquemos la entidad GenusNote
agregandole una propiedad de null false al atributo.
/**
* @ORM\ManyToOne(targetEntity="Genus")
* @ORM\JoinColumn(nullable=false)
*/
private $genus;
(si se hace este cambio despues de haber generado un archivo de migration y se genera uno nuevo de migration no se va a poder ejecutar pues va a salir un error porque no se puede modificar el foreign key.....)
crear el archivo de migrations
php app/console doctrine:migrations:diff
ejecutar las migrations
php app/console doctrine:migrations:migrate
en el controller:
class GenusController extends Controller
{
/**
* @Route("/new")
*/
public function newAction()
{
$em = $this->getDoctrine()->getManager();
//
$genus = new Genus();
$genus->setName('Octopus'.rand(1, 100));
$note = new GenusNote();
$note->setNote('I counted 8 legs... as they wrapped around me');
$note->setGenus($genus);
$em->persist($genus);
$em->persist($note);
$em->flush();
return new Response("hecho!");
}
}
levantar el server:
php app/console server: run
http://127.0.0.1:8000/new
Suscribirse a:
Enviar comentarios (Atom)
linux ubuntu mint actualizar chrome
desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable
-
por consola y desde la raiz de tu proyecto php artisan --version
-
en nuestro proyecto creamos una carpeta llamada donde estaran todas nuestras clases, por ejemplo una llamada: MiApp adentro de esta irian b...
-
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