如何获取由Auth::user创建的用户



我有两个表用户和customer_details。我想获取由Auth::user((创建的用户。created_by列位于customer_details表中。

用户表

|  id  |  name     |      email      |  status  |
|-----------------------------------------------|
|  1   |   Admin   | admin@email.com |  Active  |
|  2   | Customer  | user@email.com  |  Active  |

客户详细信息表

|  id  |  user_id  |  added_by  |  address  |
|-------------------------------------------|
|  1   |     2     |     1      |  NY City  |

这是我的查询

$customers = User::role('Customer')->whereIn('status', ['Active'])->get();

想要获取added_by是当前身份验证用户的记录

$customers = User::role('Customer')->whereIn('added_by', Auth::id())->get();

我认为这应该有助于

这里我们使用Auth::id()来获取当前用户的id,然后使用雄辩来搜索它

我认为这里added_by列包含ID;

CustomerDetail模型中创建关系:

public function addedBy()
{
return $this->belongsTo(User::class, 'added_by');
}

然后,您可以使用以下关系进行查询:

CustomerDetail::whereHas('addedBy', function($query) {
return $query->where('id', auth()->id());
})->get();

此查询返回当前登录用户创建的所有客户。

要让所有用户都拥有由当前登录用户创建的客户,请添加一个新的关系,现在添加到用户模型中:

public function customerDetail()
{
return $this->hasOne(CustomerDetail::class, 'added_by');
}

并通过登录用户创建的客户查询用户:

User::role('Customer')->whereHas('customerDetail', function($query) {
return $query->where('added_by', auth()->id());
})
->whereIn('status', ['Active'])
->get();

最新更新