我有3个型号:
用户,角色和分支。
他们是这样的:
倾倒用户模型:
class User extends Model
{
// Define fields to be fillable
protected $fillable = [
'firstname',
'lastname',
'telephone',
'address',
'password',
'code',
'status',
'branches_id',
'roles_id'
];
/**
* Get the role record associated with the user.
*/
public function role()
{
return $this->hasOne('App\Role');
}
/**
* Get the branch record associated with the user.
*/
public function branch()
{
return $this->hasOne('App\Branch');
}
}
对于角色模型:
class Role extends Model
{
// Define fields to be fillable
protected $fillable = ['description'];
/**
* Get the user that owns the role.
*/
public function user()
{
return $this->belongsToMany('App\User');
}
}
对于分支模型:
class Branch extends Model
{
// Define fields to be fillable
protected $fillable = ['description', 'location'];
/**
* Get the user that owns the branch.
*/
public function user()
{
return $this->belongsToMany('App\User');
}
}
我知道如果我使用Blade,列出用户的角色,我可以做类似的事情:$ user-> role()
但我正在尝试使用角度2作为前端,并使用laravel 5.3作为我的后端。
我的问题是如何检索用户以及角色和分支
这是我在UserController中的索引操作:
public function index()
{
// Get all users, along with roles and branches
$users = User::all();
// Send the response
return response()->json([
'users' => $users
], 200);
}
答案 0 :(得分:0)
您可以使用with()
方法,例如
$users = User::with('role')->get();
有关详细信息,请参阅https://laravel.com/docs/5.4/eloquent-relationships#eager-loading
答案 1 :(得分:0)
$users = User::with('role', 'branch')->get();
此外,如果用户有一个角色和一个分支,则关系应为belongsTo()
而不是belongsToMany()
:
return $this->belongsTo('App\User');