繁体   English   中英

Laravel一对多关系

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM