Методы ассоциации Laravel: изучение определений отношений в Laravel

«Associate Laravel» переводится на английский как «ассоциации Laravel». В Laravel ассоциации используются для определения отношений между таблицами/моделями базы данных. В Laravel доступно несколько типов ассоциаций, в том числе:

  1. Отношения «один к одному»:

    • Определить связь в классах модели:

      // User.php
      public function phone()
      {
       return $this->hasOne(Phone::class);
      }
      // Phone.php
      public function user()
      {
       return $this->belongsTo(User::class);
      }
    • Доступ к связанной модели:

      $user = User::find(1);
      $phone = $user->phone;
  2. Отношения «один ко многим»:

    • Определите отношения в классах модели:

      // User.php
      public function posts()
      {
       return $this->hasMany(Post::class);
      }
      // Post.php
      public function user()
      {
       return $this->belongsTo(User::class);
      }
    • Доступ к связанным моделям:

      $user = User::find(1);
      $posts = $user->posts;
  3. Отношения «многие ко многим»:

    • Определите отношения в классах модели:

      // User.php
      public function roles()
      {
       return $this->belongsToMany(Role::class);
      }
      // Role.php
      public function users()
      {
       return $this->belongsToMany(User::class);
      }
    • Доступ к связанным моделям:

      $user = User::find(1);
      $roles = $user->roles;
  4. Отношения «есть один»:

    • Определите отношения в классах модели:

      // Country.php
      public function user()
      {
       return $this->hasOneThrough(User::class, City::class);
      }
      // City.php
      public function user()
      {
       return $this->belongsTo(User::class);
      }
    • Доступ к связанной модели:

      $country = Country::find(1);
      $user = $country->user;

Это всего лишь несколько примеров ассоциаций Laravel. Laravel предоставляет гораздо больше методов и возможностей для определения отношений и работы с ними. Изучение и понимание этих ассоциаций поможет вам создавать более сложные и взаимосвязанные приложения с помощью Laravel.