雄辩的查询没有通过电子邮件找到用户

时间:2017-11-24 11:49:37

标签: php database laravel eloquent

我试图通过电子邮件'在电子邮件中找到一个用户。 = $ email并发送电子邮件给他们。当我尝试回显$ user时,我收到一个错误,表示它不是字符串。

public function sendEmail($user)
{
    Mail::to($user['email'])->Send(new VerifyEmail($user));
}

public function verifyEmail($email)
{
    $user = User::where('email',$email);

    $this->sendEmail($user ); //mail won't send

    return view('auth.email.verifyemail')->with('email', $email);
}

请帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

您的代码还有一些问题,而不是找不到用户,但我们先解决这个问题。

解释

where()上调用User::class方法会返回Illuminate\Database\Query\Builder的实例,而不是您要查找的记录。

要获取一组记录,您可以使用get()方法流利地调用,或者在您的情况下,您可以通过调用first()获得第一个结果。

有关该主题的更多信息:Retrieving Single Models / Aggregates

<强>解决方案

$user = User::where('email', '=', $email)->first();

if(!$user) {
  // handle the case if no user is found
}

echo $user->email // access the user's email address

然后您可以调用您的sendmail方法或任何您需要的方法并传递$user实例,如$this->sendmail($user)

答案 1 :(得分:0)

$thisUser只有一个查询。您需要执行它才能获得用户。尝试获得第一条记录:

$thisUser = User::where('email',$email)->first();