Table 1(users):
id username password role created_at updated_at
1 jhon yz 1 sometime sometime
Table 2(role):
id role created_at updated_at
1 employee sometime sometime
what I want
id username password role created_at updated_at
1 jhon yz employee sometime sometime
Users Model:
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');
}
Roles Model:
class Role extends Eloquent {
protected $table = 'roles';
}
how do i get the role name in the view ? Is my relationship right
one role can be used by many users, like:
user1 can be admin user2 can be admin too user3 is a manager user4 is a manager too
if thats the case then,..
Users Model:
class User extends Eloquent implements UserInterface, RemindableInterface {
protected $table = 'users';
protected $hidden = array('password', 'remember_token');
public function role()
{
return $this->belongsTo('Role');
}
}
Roles Model:
class Role extends Eloquent {
protected $table = 'roles';
public function users()
{
return $this->hasMany('User');
}
}
then use:
User::with('role')->whereRole(1)->get(); // assuming that 1 = employee; this is eager loading
this will yield something like:
[
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'
])
])
]