[英]Laravel one to many relationships
我正在Laravel中构建一个用户具有角色的应用程序。
我已经建立了带有return $this->belongs_to('Role')
的User模型和带有return $this->has_many('User')
的Role模型,并且users数据库表的列为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')
也不起作用。
我显然在这里缺少了什么,有人可以教我正确的方法吗?
检查一下: http : //vespakoen.github.com/authority-laravel/
这是用于laravel的ACL授权捆绑包。 那里的用户可以具有1到n个角色,因此它使用this->has_many_and_belongs_to
。
如您所见,角色返回一个数组,因此您必须像访问数组一样访问它
正确的访问方式是
$ user-> role [0]-> id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.