在我的应用程序中,我有一个users
表,该表中有一个名为managedByUsername
的字段,该字段是该特定用户的管理员的用户名。
要具体了解您的员工,可以执行以下查询:
$employees = User::where('managedByUsername', auth()->user->username)->get()
要获得您的经理,可以在用户模型上建立关系;
public function mananager()
{
return $this->belongsTo(User::class, 'username', 'managedByUsername');
}
但是,我想不出您将如何做?
也许
public function employees()
{
return $this->hasMany(User::class, 'username', 'managedByUsername');
}
但这显然行不通。
我也尝试了以下方法:
/**
* Get the manager for this user
*
* @return void
*/
public function mananager()
{
return $this->belongsTo(User::class, 'managedByUsername', 'username');
}
/**
* Get the manager for this user
*
* @return void
*/
public function employees()
{
return $this->hasMany(User::class, 'managedByUsername', 'username');
}
答案 0 :(得分:0)
解决此问题的最佳方法是使用用户的ID作为管理员的外键。
因此将managedByUsername
字段替换为manager_id
。
然后,您可以将雄辩的关系写成:
public function mananager()
{
return $this->belongsTo(User::class, 'manager_id');
}
public function employees()
{
return $this->hasMany(User::class, 'manager_id');
}
希望这有助于解决您的问题。