Pregunta:
Fecha: 05-01-2016 21:14:58
(En Español)
Tengo un modelo llamado Prod el cual necesito que tenga relación con otros 3 modelos: Category, User y Provider.
Creé las tablas con las relaciones correspondientes, si creo un nuevo producto (Modelo Prod) desde phpmyadmin me da la opción de seleccionar la categoría, el usuario y el proveedor de una lista sin problema.
La cuestión es al listar todos los productos ya que sólo me toma en cuenta la relación con la categoría si hago esto:
products.blade.php
{{$p->category->name_category}} // Aquí me indica el nombre de la categoría sin problema.
Pero al intentar que me muestre el nombre del proveedor:
{{$p->provider->name_provider}} // Me indica error: Trying to get property of non-object
Lo mismo pasa al tratar de mostrar el usuario que creó el producto.
Las relaciones las tengo de esta forma:
Modelo: Prod (hace referencia a Productos)
public function provider(){
return $this->belongsTo('Log\Provider');
}
public function category(){
return $this->belongsTo('Log\Category');
}
public function user(){
return $this->belongsTo('Logic\User');
}
Modelo: Category
public function products(){
return $this->hasMany('Log\Product');
}
Modelo: Provider
public function products(){
return $this->hasMany('Log\Prod');
}
Tinker siempre retorna la categoría correcta al consultar pero al consultar proveedor o usuario me indica: null
No se que hacer, me di cuanta también que por error en el modelo Category tenía la relación de esta forma: return $this->hasMany('Logic\Product') y ni siquiera se llama Product mi modelo de productos el nombre es Prod pero aún así funciona.
Espero me puedan ayudar compañeros y gracias!! Votos: 3 - Respuestas: 7 - Vistas: 14 Compartir en: Google Facebook Twitter LinkedIn Link
Problema con relaciones en Laravel 5.1[Resuelta]
Buenas noches compañeros les escribo un poco desesperado ya que no puedo solucionar este problema.Tengo un modelo llamado Prod el cual necesito que tenga relación con otros 3 modelos: Category, User y Provider.
Creé las tablas con las relaciones correspondientes, si creo un nuevo producto (Modelo Prod) desde phpmyadmin me da la opción de seleccionar la categoría, el usuario y el proveedor de una lista sin problema.
La cuestión es al listar todos los productos ya que sólo me toma en cuenta la relación con la categoría si hago esto:
products.blade.php
{{$p->category->name_category}} // Aquí me indica el nombre de la categoría sin problema.
Pero al intentar que me muestre el nombre del proveedor:
{{$p->provider->name_provider}} // Me indica error: Trying to get property of non-object
Lo mismo pasa al tratar de mostrar el usuario que creó el producto.
Las relaciones las tengo de esta forma:
Modelo: Prod (hace referencia a Productos)
public function provider(){
return $this->belongsTo('Log\Provider');
}
public function category(){
return $this->belongsTo('Log\Category');
}
public function user(){
return $this->belongsTo('Logic\User');
}
Modelo: Category
public function products(){
return $this->hasMany('Log\Product');
}
Modelo: Provider
public function products(){
return $this->hasMany('Log\Prod');
}
Tinker siempre retorna la categoría correcta al consultar pero al consultar proveedor o usuario me indica: null
No se que hacer, me di cuanta también que por error en el modelo Category tenía la relación de esta forma: return $this->hasMany('Logic\Product') y ni siquiera se llama Product mi modelo de productos el nombre es Prod pero aún así funciona.
Espero me puedan ayudar compañeros y gracias!! Votos: 3 - Respuestas: 7 - Vistas: 14 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 06-01-2016 04:20:29 Si están bien las llaves foráneas en la convención de Laravel porque eso me a pasado. Votos: 2 - Link respuesta
-
Fecha: 06-01-2016 12:35:25 Todo estabá bien amigo, tuve que hacer todo el modelo de nuevo, las relaciones y migraciones con otro nombre y ya funciona, la verdad ni idea de que pasó. Saludos! Votos: 3 - Link respuesta
-
Fecha: 06-01-2016 17:31:52 Lo "intelimágico" es así... suerte que lo pudiste resolver, saludos Votos: 1 - Link respuesta
-
Fecha: 06-01-2016 22:21:49 No se que sea intelimágico pero creo saber por donde va y con laravel van dos cuestiones que me hace pensar eso, este tema y otro que no me edita de forma correcta perobueno a ver que pasa, gracias! Votos: 1 - Link respuesta
-
Fecha: 07-01-2016 05:10:27 Hola Oscar, muchas gracias por tu comentario, seguramente hay más de uno que se pregunta lo mismo que tu, ¿a que se refiere cuando dice "intelimágico"? por lo que realice un nuevo post en el cual trato de dar luz al concepto, aquí la nota: Concepto intelimágico
Saudos! Votos: 3 - Link respuesta -
Fecha: 07-01-2016 09:21:52 Acabo de leer tu post y tienes razón aunque soy de las personas que realmente no me gusta no saber como trabaja algo, me gusta mucho saber porque y como trabaja cierta función pero como dice tu post aveces es complejo la documentación es escasa y adentrarte en el código del framework es una buena batalla además de que tienes al cliente o jefe detrás de ti exigiendo resultados con velocidad.
En mi poca experiencia prefiero siempre hacer mi propio código pero como sabes hoy en día te exigen, o al menos a mi me pasó, el uso de un framework.
Saludos! Votos: 2 - Link respuesta -
Fecha: 12-01-2016 21:29:04 creo que ya salio la version 5.2 por que trabajar en version vieja? Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
