Я создаю приложение на Laravel, в котором у пользователей есть роль.
Я установил модель пользователя с return $this->belongs_to('Role')
и модель ролей с return $this->has_many('User')
, а таблица базы данных пользователей имеет столбец role_id.
Мой вопрос касается чтения, а также обновления роли через модель пользователя. Приведенный ниже код - это то, что я пытался, но пока не повезло:
Контроллер
return View::make('admin.users.index')->with('users', User::paginate(50));
// Also tried User::with('role')->paginate(50) which doesn't help
Вид
@foreach($users->results as $user)
{{ $user->role->role }} // Trying to get property of non-object
{{ $user->role()->role }} // Undefined property
{{ var_dump($user->role) }}
// Outputs
object(Role)#39 (5) {
["attributes"]=>
array(4) {
["id"]=> string(1) "2"
["role"]=> string(4) "User"
["created_at"]=> string(19) "0000-00-00 00:00:00"
["updated_at"]=> string(19) "0000-00-00 00:00:00"
}
["original"]=>
array(4) {
["id"]=> string(1) "2"
["role"]=> string(4) "User"
["created_at"]=> string(19) "0000-00-00 00:00:00"
["updated_at"]=> string(19) "0000-00-00 00:00:00"
}
["relationships"]=>
array(0) {
}
["exists"]=> bool(true)
["includes"]=>
array(0) {
}
}
@endforeach
И с обновлением похожая история - $user->role = Input::get('role')
тоже не работает.
Я явно что-то упускаю, может ли кто-нибудь показать мне, как это сделать правильно?