Я создаю приложение в Laravel, в котором пользователи имеют роль.Laravel one to many relationship
Я установил модель пользователя с помощью 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')
не работает.
Я, очевидно, что-то пропустил, может ли кто-нибудь показать мне правильный способ сделать это?
Спасибо за отзыв, но я специально ищу, как работать с отношениями от одного до многих, а не с многими из многих – PaulK