Таблицы ссылок в Laravel 5


Я пишу приложение, для которого требуется 2 таблицы, связанные вместе с помощью таблицы ссылок, поэтому всего 3 таблицы.

//-------
  Users
//------
id,
name,
email,
password

//---- 
UserAccountType
//----
id,
name,
description

//---
UserAccountLink
//---
id,
user_id,
type_id,

Пользователь может иметь несколько типов учетных записей (Администратор, Обычный, Разработчик)... Кроме того, я установил ограничения для внешних ключей.

Единственная проблема в том, что я не понимаю, как бы я их связал, и я попробовал следующее:

class User extends Model {

     // implementation

     public function account_type()
     {
          $this->hasMany('UserAccountTypeLink', 'id', 'id');
     }
}

class UserAccountType extends Model {

     // Implementation

}

class UserAccountTypeLink extends Model {
    // Implementation 

    public function user_account()
    {
        return $this->hasOne('UserAccountType', 'type_id', 'id');
    }
}

Мой ожидаемый результат заключается в том, что, например, у пользователя 1 есть учетная запись "Администратора" и "Разработчик" вернулся. Но на данный момент я, похоже, не могу получить желаемый результат. Есть идеи, где я ошибаюсь?

Author: jedrzej.kurylo, 2015-07-13

1 answers

Вам не нужна модель для промежуточной таблицы UserAccountTypeLink. Посмотрите здесь, чтобы получить дополнительную информацию о том, как создать отношение "многие ко многим" в красноречивом: http://laravel.com/docs/5.1/eloquent-relationships#many-to-many

 2
Author: jedrzej.kurylo, 2015-07-13 19:11:30