2015-07-13 10 views
3

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

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

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

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

Пользователь может иметь несколько типов учетных записей (Admin, Normal, Developer) ... Кроме того, я поставил внешние ключи ограничения.

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

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 имеет счет «Администратор» и «Разработчик» вернулись. Но на данный момент я не могу получить желаемый результат. Любые идеи, где я ошибаюсь?

ответ

1

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

+0

Таблица «role_user» - это не то же самое, что и моя таблица ссылок? Я попробую это, спасибо :) – Phorce