Serie LaravelPHP Eloquent ORM Cap8

download Serie LaravelPHP Eloquent ORM Cap8

of 3

Transcript of Serie LaravelPHP Eloquent ORM Cap8

  • 7/25/2019 Serie LaravelPHP Eloquent ORM Cap8

    1/3

    Captulo 8: Relaciones ORM Eloquent en Laravel 4@jlinformatico

    Hola estimados developers, en el anterior captulo hablamos sobre como implementarnuestros modelos en nuestro primer proyecto Laravel 4, puedes verlo en el siguiente:http://blog.devacademy.la/post/9910!"4"1/tutorial#laravel#implementando#modelos#

    por

    $n este tutorial vamos a utili%ar las relaciones elo&uent en Laravel 4, seguimos connuestro proyecto devacademy#laravel, emocionad'()), continuemos.

    Introduccin a las relaciones

    $n los tutoriales anteriores hemos descubierto c*mo representar las +las almacenadasen nuestras tablas de la base de datos como obetos.-ado &ue esos obetos ahora son simples, si ueramos a almacenar datos relacionadoscon ellos, tendramos &ue crear nuevos obetos y ormar relaciones entre ellos.

    amos a tomar nuestro modelo Libro del anterior tutorial. i pensamos en los libros porun momento, llegaremos a la conclusi*n de &ue han tenido &ue ser escritos por alguien.

    s &ue ahora sabemos &ue un Li!ro pertenece a un autor. $sa es nuestra primerarelacin. $l autor tiene un enlace al libro. $n cierta manera, el autor identi+ca al libro. 2oes necesariamente una propiedad del libro, como su ttulo por eemplo.

    3n autortiene su propio conunto de propiedades un nombre, un lugar de nacimiento,un, vamos a declarar su propio modelo, una clase utor.

    5lase utor

    6ien, ormemos una relaci*n entre ambas tablas. $s una relaci*n entre Libro y utor,

    ignoraremos co#autora por ahora y asumiremos &ue un libro solo puede tener un autor.amos a a7adir una nueva columna a la tabla Libros.

    5lase Libros 8elaci*n

    Hemos a7adido nuestra primera clave oranea. $sta es el campo autorid. 3na ve% ms,

    http://blog.devacademy.la/post/99105325421/tutorial-laravel-implementando-modelos-porhttp://blog.devacademy.la/post/99105325421/tutorial-laravel-implementando-modelos-porhttp://blog.devacademy.la/post/99105325421/tutorial-laravel-implementando-modelos-porhttp://blog.devacademy.la/post/99105325421/tutorial-laravel-implementando-modelos-por
  • 7/25/2019 Serie LaravelPHP Eloquent ORM Cap8

    2/3

    es un campo entero, pero no es usado para identi+car +las en esta tabla, en ve% de esoes usada para identi+car +las relacionadas en otra tabla. 3na clave oranea se usanormalmente para identi+car una clave primaria en una tabla adyacente, no obstante, enalgunas circunstancias puede ser usada para identi+car otros campos.

    8elaci*n utores y Libros

    amos a de+nirle nombre a las relaciones cuando llegue la hora de implementar esos

    tipos de relaciones con $lo&uent :

    Li!ro !elon"s#to $utorLas relaciones tambi;n tienen sus variaciones inversas. i un Libro pertenece a un utor,esto signi+ca &ue un utor tiene muchos Libros. hora hemos aprendido el nombre deotra relaci*n.

    $utor %as#man& Li!roi el autor solo tuviera un u; tal un sistema de avoritos( $n el &ue un 3suario pueda votar un Libro. amos aintentar e?presarlo usando las relaciones &ue hemos descubierto.

    'suario %as#man& Li!ro

    Li!ro %as#man& 'suario

    La relaci*n has many @tiene muchosA es la relaci*n &ue e?presa el avorito.5uando ambas relaciones y sus inversas son del tipo hasmany tenemos &ueimplementar un nuevo tipo de relaci*n.

    Brimero, en ve% de decir tiene muchos diremos &ue pertenece a muchos@belongstomanyA. -e esta orma no la conundiremos con la otra relaci*n. $ste nuevotipo de relaci*n orma una relaci*n del tipo muchos a muchos y necesita una tablaadicional.

    Implementando

  • 7/25/2019 Serie LaravelPHP Eloquent ORM Cap8

    3/3

    C(php

    classLi!roe(tends EloquentD

    // 2ombre del libro

    pu!licEnombre

    // -escripci*n del libropu!licEdescripcion

    // Fdenti+cador autorpu!licEautorid

    // 8elaci*npu!lic functionautor@AD

    return )t%is#Gbelongso@IutorIA

    JJ

    aludos)