Laravel 5 - 通过其他字段正确获取 ID

Jer*_*olo 1 php laravel laravel-5

我想middleware通过搜索他的电子邮件来获取用户的 ID 。我想通过两种方式之一来做这样的事情。

首先,在模型中创建一个函数User

public function getIdByMail($query, $q) {
    return $query->select('id')->where('email', $q);
}
Run Code Online (Sandbox Code Playgroud)

二、在我的中间件中使用这个函数

use App\User;
...
$user = User::getIdByMail($user_id);
Run Code Online (Sandbox Code Playgroud)

它不起作用,我什至不确定这是正确的方法......

Paw*_*zad 6

这应该这样做。模型中不需要额外的方法。Eloquent 使一切变得非常简单。

$id = User::where('email', $email)->first()->id;
Run Code Online (Sandbox Code Playgroud)

  • 替代方案:`$id = User::where('email', $email)->first(['id']);` (2认同)