2013-03-21 147 views
1

我在Laravel構建了一個用戶具有角色的應用程序。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')也不起作用。

我很明顯錯過了一些東西,有人能告訴我正確的方法來做到這一點嗎?

回答

0

檢查了這一點:http://vespakoen.github.com/authority-laravel/

這是laravel的ACL局束。用戶可以有1到n個角色,因此它使用this->has_many_and_belongs_to

+0

感謝您的提示,但我特別在尋找如何使用一對多關係而不是多對多 – PaulK 2013-03-25 09:40:11

0

正如你所看到的,角色返回一個數組,所以你要訪問它像一個數組

訪問正確的方式,將

$用戶>角色[0] - > ID