Relación Muchos a Muchos
Comprar curso

98. Relación Muchos a Muchos

En este capítulo, descubre cómo establecer una relación Muchos a Muchos en Laravel 10 entre dos modelos de la base de datos. Aprende cómo definir la relación y cómo acceder a los datos relacionados.


5 comentarios

Inicia sesión para comentar

Comentarios:

  • Victor Arana Flores

    Victor Arana Flores hace 1 año Destacado

    Si estás trabajando en un proyecto de Laravel 10 y necesitas establecer una relación Muchos a Muchos entre dos modelos de la base de datos, has llegado al lugar adecuado. En este capítulo, te enseñaremos cómo definir y acceder a esta relación en Laravel 10.

    La relación Muchos a Muchos es una de las más comunes en las bases de datos relacionales, y se utiliza para modelar relaciones complejas entre diferentes entidades. En Laravel 10, puedes definir esta relación mediante el uso de métodos en los modelos correspondientes.

    Para establecer una relación Muchos a Muchos en Laravel 10, debes crear una tabla de relación que contenga las claves foráneas de ambos modelos. A continuación, debes establecer los métodos belongsToMany en ambos modelos, especificando el nombre de la tabla de relación y los nombres de las columnas de las claves foráneas. Por ejemplo, si tienes un modelo User y un modelo Role, y cada usuario puede tener varios roles y cada rol puede pertenecer a varios usuarios, debes establecer los métodos belongsToMany en ambos modelos de la siguiente manera:

    class User extends Model
    {
       public function roles()
       {
           return $this->belongsToMany(Role::class, 'user_role', 'user_id', 'role_id');
       }
    }
    class Role extends Model
    {
       public function users()
       {
           return $this->belongsToMany(User::class, 'user_role', 'role_id', 'user_id');
       }
    }

    Una vez definida la relación, puedes acceder a los datos relacionados mediante el uso de métodos en una instancia del modelo principal. Por ejemplo, si deseas obtener todos los roles de un usuario con un ID específico, puedes hacerlo de la siguiente manera:

    $user = User::find(1);
    $roles = $user->roles;

    En resumen, si necesitas establecer una relación Muchos a Muchos en Laravel 10, debes crear una tabla de relación y establecer los métodos belongsToMany en ambos modelos correspondientes. Una vez definida la relación, puedes acceder a los datos relacionados mediante el uso de métodos en una instancia del modelo principal. Esperamos que esta información te haya sido útil en tu proyecto de Laravel 10.

  • Juan Sebastián Joya Rodríguez

    Juan Sebastián Joya Rodríguez hace 1 año

    Esta clase me encanta porque no solo aprendí la relación mucho a muchos, sino buenas practicas de como diseñar bases de datos.

    • Victor Arana Flores hace 1 año

      Hola Juan. Me alegra que te guste :D

  • Juan Sebastián Joya Rodríguez

    Juan Sebastián Joya Rodríguez hace 1 año

    Hola Vistor, te queria preguntar, como podriahacer una especie de filtro en las consultas, por ejemplo, nosotros en la empresa usamos soft delete, por lo que no borramos nada de la bd sino le asingamos un estado activo o inactivo, como podria hacer para traerme solo las relaciones activas?

    • Leonard hace 1 año

      A estas Alturas amigo, deberías poder realizar esa actividad, te sugiero que veas las clase 75 uso de la cláusula where, ahi te explican cómo filtrar como lo deseas 

  • Jorge Contreras

    Jorge Contreras hace 1 año

    Buen dia maestro, una consulta. Desde videos atras no me funciona el $course = Course::first()
    Me dice que la clase Course no existe, aun cerrando y abriendo nuevamente Tinker
    La unica forma de hacerlo funcionar es $course = App\Models\Course::first()
    Alguna idea de que pasa y como corregirlo ? Gracias

    • Juan Sebastián Joya Rodríguez hace 1 año

      Debes decirle, tanto al codigo como al Tinker use App\Models para que sepa de cual namespace estas trayendo la clase Cursos

  • Christian Hernán Abanto Segura

    Christian Hernán Abanto Segura hace 1 año

    Buenas noches una consulta, observe que en la tabla intermedia no creaste un modelo sino solo la migración, eso quiere decir que las tablas intermedias no tienen un modelo asignado?.

    • Victor Arana Flores hace 1 año

      Hola Christian, así es, por lo general las tablas intermedias no tienen modelos asignados, ya que su unica función es guardar las llaves foraneas.

      Pero si en dado momento nesesitas crearla, podrías hacerlo.