Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Объясните пожалуйста как нужно сделать в моем случе
Есть таблица Users (id,name,email,...)
Есть таблица Roles (1=>Admin,2=>Guest,...)
Есть таблица Role_users (user_1d=>role_id)
Как мне обратиться к role_id
Когда у меня есть юзер
$user = User::find($activation->user_id);
Я создал Модель Role_user
И в модели User написал следующее
public function role_user()
{
return $this->hasOne('App\Role_user');
}
Но я не получил однозначного ответа а только вот этот стек
HasOne {#94 ▼
#foreignKey: "role_users.user_id"
#localKey: "id"
#query: Builder {#279 ▶}
#parent: User {#280 ▶}
#related: Role_user {#273 ▼
#connection: "mysql"
#table: null
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: false
+wasRecentlyCreated: false
#attributes: []
#original: []
#casts: []
#dates: []
#dateFormat: null
#appends: []
#events: []
#observables: []
#relations: []
#touches: []
+timestamps: true
#hidden: []
#visible: []
#fillable: []
#guarded: array:1 [▶]
}
#withDefault: null
}
А хочется написать $user->role_id И получить значение
Изменено imediasun (26.08.2017 16:54:44)
Не в сети
$user->role_user->role_id
Ингогда надо спросить у самого себя чтобы понять
Может другие методы кому известны быстрее и проще?
Изменено imediasun (26.08.2017 17:00:56)
Не в сети
всё перепутал. судя по описанию структуры базы у тебя должно быть две модели: User и Role, связанные между собой отношением многие-ко-многим (->belongsToMany()) через пивот-таблицу role_user (для неё модели создавать не нужно). если у пользователя может быть только одна роль, пивот-таблица не нужна, достаточно поля role_id на users, в этом случае у пользователя будет связь role() { return $this->belongsTo(Role::class); } а у ролей для получения пользователей с этой ролью будет связь users() { return $this->hasMany(User::class); }
Не в сети
Страницы 1