Foros del Web » Programando para Internet » PHP »

PHP OO Relacciones en laravel

Estas en el tema de Relacciones en laravel en el foro de PHP en Foros del Web. Buenas a todos. Tengo una duda y nose por donde empezar. La idea es que yo tengo 2 tablas "users" y "events". La funcion que ...
  #1 (permalink)  
Antiguo 03/11/2014, 17:21
Avatar de Zonabeta  
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 11
Antigüedad: 9 años, 9 meses
Puntos: 0
Relacciones en laravel

Buenas a todos.

Tengo una duda y nose por donde empezar. La idea es que yo tengo 2 tablas "users" y "events".

La funcion que quiero realizar es que el usuario se inscriba en el evento, pero problema : ¿Como indico yo que se ha inscrito en ese evento? Creando una columna nueva en users o events, o como?

He estado indagando con las Relacciones de Eloquent de laravel y no entiendo como puedo aplicarlo a mi problema.

Muchas gracias de antemano.

Un saludo, Javier.
  #2 (permalink)  
Antiguo 03/11/2014, 17:38
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Relacciones en laravel

De forma general tienes que crear una relación uno a muchos entre las tablas users y events. Pero necesitas leer la documentación para que sepas como extender eloquent: http://laravel.com/docs/4.2/eloquent#one-to-many
Tambien es necesario que veas como hacer uso de la creación de esquemas y migraciones:
http://laravel.com/docs/4.2/schema
http://laravel.com/docs/4.2/migrations
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 03/11/2014, 18:26
Avatar de Zonabeta  
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 11
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Relacciones en laravel

Pero como los relacciono, creo una columna en cada tabla que relaccione las ID?
  #4 (permalink)  
Antiguo 04/11/2014, 09:04
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Relacciones en laravel

Cita:
Pero como los relacciono, creo una columna en cada tabla que relaccione las ID?
Por eso es necesario leer el manual; Laravel asume algunas convenciones para conocer las relaciones.
http://laravel.com/docs/4.2/eloquent#relationships
Cita:
Take note that Eloquent assumes the foreign key of the relationship based on the model name. In this case, Phone model is assumed to use a user_id foreign key. If you wish to override this convention, you may pass a second argument to the hasOne method. Furthermore, you may pass a third argument to the method to specify which local column that should be used for the association:
En resumen para tu ejemplo events espera que exista un campo users_id como foreing key. En terminos de php solo tienes que hacer lo siguiente.
Código PHP:
Ver original
  1. class Users extends Eloquent {
  2.  
  3.     public function events()
  4.     {
  5.         return $this->hasMany('Events');
  6.     }
  7.  
  8. }
Si ya existen tus tablas y no siguen esta convención, entonces tienes que indicar cual es el foreing key; supongamos para tu caso algo como user_event_id, entonces solo lo tienes que indicar en el método hasMany como segundo argumento.
Código PHP:
Ver original
  1. class Users extends Eloquent {
  2.  
  3.     public function events()
  4.     {
  5.         return $this->hasMany('Events','user_event_id');
  6.     }
  7.  
  8. }
Si es necesario puedes pasar el primary key como tercer argumento.
Espero que esto te aclare el panorama y te sirva para que hagas del manual tu mejor amigo
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 04/11/2014, 17:11
Avatar de Zonabeta  
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 11
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Relacciones en laravel

Pregunta de novato:

¿Como hago ahora para que el usuario al hacer click en "inscribirse a evento" se inserte su ID en la tabla eventos?
  #6 (permalink)  
Antiguo 04/11/2014, 17:57
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Relacciones en laravel

Cita:
Iniciado por Zonabeta Ver Mensaje
Pregunta de novato:

¿Como hago ahora para que el usuario al hacer click en "inscribirse a evento" se inserte su ID en la tabla eventos?
Lee el manual: http://laravel.com/docs/4.2/eloquent...related-models
Si tienes alguna duda publica lo que tienes echo y hasta entonces se te puede orientar.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: laravel, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:17.