【问题标题】:Laravel - User validation id giving wrong responseLaravel - 用户验证 ID 给出错误响应
【发布时间】:2021-08-03 11:38:56
【问题描述】:

我在 Laravel-8 中有这段代码:

$userId = Auth::user()->id;
$companyId = Auth::user()->company_id;

$confirmUser = User::where('company_id', $companyId)->where('active', 1)
    ->where(function ($query) use($request) {
    $query->where('email', $request->email);
})->whereNull('deleted_at')->first();
if(!$confirmUser){
    return $this->error('The User already exists', 400);
}

如果用户已经存在,我想:

return $this->error('用户已存在', 400);

继续操作。

dd($confirmUser);给空

然而邮递员的回应是:

{"message":"用户已经存在","error":true,"code":400}

我该如何解决这个问题?

谢谢

【问题讨论】:

  • 更改 if 条件为:if($confirmUser)
  • @YasinPatel - 这不会给我所需的结果。我想在它不为null时将其打破。但是如果它为null,则继续
  • 是的,你的情况正好相反,现在有记录就破了
  • 奇怪的是,当用户不存在时,您会收到错误“用户已存在”。令人困惑,不是吗?

标签: laravel


【解决方案1】:
$userId = Auth::user()->id;
$confirmUser = User::where('company_id', Auth::user()->company_id)->where('active', 1)
->where('email', $request->email)->whereNull('deleted_at')->first();

if($confirmUser){
return $this->error('The User already exists', 400);
}

【讨论】:

  • 为什么会有不同的反应? ->first() 如果记录不存在则返回 null...
  • 你改变了什么?出了什么问题?
  • 是的,对不起,我认为使用 get()。谢谢指正
  • 我在 if 条件下删除 empty()。
  • 我也会更改错误消息,这非常令人困惑:-D。
猜你喜欢
  • 2016-11-18
  • 1970-01-01
  • 2017-10-21
  • 1970-01-01
  • 2016-05-07
  • 2017-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多