在我的申请表中,目前有两张表:users
和employees
。后者只是Laravel附带的样板users
表的配置文件表。
我在employees
内有两个外键,一个user_id
指向id
表上的users
。基本上,注册用户的个人资料数据。 employees
中的第二个外键是manager_id
。这是作为员工经理的人的身份。有些用户是管理员,并且有一个空白的manager_id
字段。
我想从我的Employee
模型中检索user_id
与manager_id
匹配的行,然后将它们全部发送到我的视图,在那里他们会看到first_name
和经理的last_name
。目前我看到经理ID而不是他们的名字。
答案 0 :(得分:1)
尝试这样的事情:
$users = DB::table('users t1')
->join('users t2', 't1.id', '=', 't2.user_id')
->select('your column list')
->get();
//这里我们为users表创建2个别名,使其自行加入
答案 1 :(得分:1)
示例LeftJoin =>
DB::connection('testing')->table('table1 as t1')
->select('t1.column, t2.column')
->leftJoin('table2 as t2','t2.client_id','=','t1.id')
->get();
答案 2 :(得分:0)
在您的Employees模型中添加以下方法:
public function manager()
{
return $this->hasOne('App\User', 'id', 'manager_id');
}
然后您可以像这样获取经理的名称:
$employee = \App\Employee::find(1);
$manager = $employee->manager()->first();
$manager_name = $manager->name;