使用选择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
是这种情况下用户的电子邮件的正确方法是什么?
答案 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();