Creación de la bbdd - Parte 2
Comprar curso

7. Creación de la bbdd - Parte 2


1 comentarios

Inicia sesión para comentar

Comentarios:

  • Jonathan Kevin Sandoval Nuñez

    Jonathan Kevin Sandoval Nuñez hace 1 año

    Hola Víctor, una consulta si tengo una tabla intermedia con campos adicionales a las FK que definí en mi migración, por ejem. stock, precio de que forma podría  agregarse los campos adicionales a los Modelos para que puedan ingresarse datos en ellos? si tienen una relacion de muchos a muchos, me surgio esa duda.

    • Victor Arana Flores hace 1 año

      Hola Jonathan si quieres pasarle más parametros tiene que pasarlo como segundo parametro en el metodo attach

       

      ->attach($id, [
      	'dato1' => $dato1,
      	'dato2' => $dato2
      ])

       

      Luego para que esos datos tambien retornen en la tabla pivot tienes que hacer algo asi

       

      public function companies()
      {
      	return $this->belongsToMany(Company::class)->withTimestamps()->withPivot('dato1', 'dato2');
      }
    • Jonathan Kevin Sandoval Nuñez hace 1 año

      Gracias victor , entonces a los dos Modelos que tienen el Metodo con la relacion muchos a muchos, les agrego ->withTimestamps()->withPivot('dato1', 'dato2'); para que pueda reflejarse en la pivot entre ambas tablas o bastaria  indicarlo en un solo metodo.

    • Victor Arana Flores hace 1 año

      Hola Jonathan, disculpa la demora en la respuesta.
       

      Acuerdate que el método withPivot le agregas a la relacion. Así por ejemplo al generar una relacion entre el modelo user y roles le agregas el metodo withPivot podrás acceder a los datos de la tabla pivot cuando accedas a la relacion user→roles

      Ahora si tambien quieres recuperar la información extra de la tabla pivor al acceder a la relación inversa role users, tambien tendrás que agregar el método withPivot al crear la relacion role user.

      Las relaciones no son mas que crear sentencias sql bajo el capote de Eloquent. En donde tu especificas como quieres recuperar dicha información.