我在routes.php文件中有这2条路线
$router->resource('user','UserController');
$router->resource('usertype','UserTypeController');
但我真正想要的是获取用户并使用它加入usertype 例 用户表: id name usertype_id 1管理员2 2约翰1
usertype表: id名称 1正常 2管理员
我想得到: 1'约翰''正常' 2'admin''admin'
我试过这个:
public function __construct(User $user)
{
$this->user = $user->with('usertype');
}
这不好用。它使用user.id来设置关系 所以它将进行的查询是
select * from user_types where user_types.id = users.id
应该是
select * from user_types where user_types.id = users.user_type_id
第二个问题是它为每个用户执行查询, 在此解释:https://www.youtube.com/watch?v=swhWRMkpVsg
答案 0 :(得分:0)
我找到了解决方案: 在用户控制器中:
public function __construct(User $user)
{
$this->user = $user->with('usertype')->with('company');
}
并在用户模型中:
public function usertype(){
return $this->belongsTo('App\UserType','user_type_id','id');
}
public function company(){
return $this->belongsTo('App\Company','company_id','id');
}