2014-09-25 68 views
0

表1(用戶):laravel一對一或一對多的關係?

id username password role created_at updated_at 

1  jhon  yz  1 sometime  sometime 

表2(角色):

id  role  created_at updated_at 

1 employee  sometime sometime 

我想要什麼

id username password role  created_at updated_at 

1  jhon  yz  employee sometime  sometime 

用戶型號:

class User extends Eloquent implements UserInterface, RemindableInterface { 
    public function role() 
    { 
     return $this->hasOne('role', 'id', 'role'); 
    } 
    protected $table = 'users'; 
    protected $hidden = array('password', 'remember_token');  
} 

角色型號:

class Role extends Eloquent { 
    protected $table = 'roles'; 
} 

請問如何在視圖中的角色名?是我的關係正確

+0

這是'用戶屬於關聯role' – 2014-09-25 14:44:14

回答

0

一個角色可以由多個用戶使用,如:

user1的可管理 user2的可管理太 用戶3是經理 USER4是經理太

如果多數民衆贊成然後的情況下,..

用戶型號:

class User extends Eloquent implements UserInterface, RemindableInterface { 
     protected $table = 'users'; 
     protected $hidden = array('password', 'remember_token'); 

     public function role() 
     { 
      return $this->belongsTo('Role'); 
     } 
    } 

角色型號:

class Role extends Eloquent { 
    protected $table = 'roles'; 

    public function users() 
    { 
     return $this->hasMany('User'); 
    } 
} 

然後使用:

User::with('role')->whereRole(1)->get(); // assuming that 1 = employee; this is eager loading 

這將產生類似:

[ 
    new User([ 
     'id' => 1, 
     'username' => 'blahblah', 
     'password' => 'pass', 
     'role' => 1, 
     'created_at' => '0000-00-00', 
     'updated_at' => '0000-00-00', 
     'role' => new Role([ 
        'id' => 1, 
        'role' => 'employee', 
        'created_at' => '0000-00-00', 
        'updated_at' => '0000-00-00' 
       ]) 
    ]) 
] 
+0

確定我如何獲取所有員工記錄此$用戶=用戶::所有() - >作用; ? – 2014-09-25 14:51:23

+0

嘗試'foreach(User :: with('role') - > get()as $) { echo $ user-> role-> role; }' – Adimeus 2014-09-25 15:00:55

+0

如果你想有一個像你上面顯示的輸出,你可以使用變壓器 – Ceeee 2014-09-25 15:09:02