为什么Eloquent Select as id返回零“ 0”

时间:2019-07-12 15:35:45

标签: database laravel eloquent laravel-5.8

使用选择field作为id的模型的Laravel 5.8口才查询对该字段返回0

考虑这个雄辩的查询$users = User::select("SELECT email AS id", "name")->where('email', 'LIKE', '%gmail.com')->get(); $user->id;为“ 0”!

为什么?以及进行这种查询以使$user->id是这种情况下用户的电子邮件的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

您为什么两次使用select

您可以改为:

$users = User::select(['email AS id', 'name'])->where('email', 'LIKE', '%gmail.com')->get();

这将返回一个集合,以便对其进行迭代,您可以访问用户ID,该ID将返回电子邮件。

答案 1 :(得分:0)

似乎您需要查找一行或仅一个用户,因此必须使用event.layerType而不是->first()

->get()

最后:$user = User::select("SELECT email AS id, name")->where('email', 'LIKE', '%gmail.com')->first();