【发布时间】:2019-11-22 09:41:44
【问题描述】:
对模型的 Laravel 5.8 Eloquent 查询,选择 field as id 为该字段返回 0
考虑一下这个雄辩的查询$users = User::select("SELECT email AS id", "name")->where('email', 'LIKE', '%gmail.com')->get();
$user->id; 是“0”!!
为什么?以及进行此类查询以使$user->id 成为此案例的用户电子邮件的正确方法是什么?
【问题讨论】:
-
由于
id是一个整数列,Laravel 将值转换为整数。 -
@JonasStaudenmeir 那么如何防止转换为整数?
-
您可以将
$public incrementing = false;放入您的User模型中,但您不应该这样做。这打破了User::create($data)->id。我强烈建议您不要使用这种查询。如果您想返回 JSON 响应,请查看 API resources。为什么要“重命名”email列?
标签: database laravel eloquent laravel-5.8