首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

Eloquent是Laravel框架中的ORM(对象关系映射)工具,用于简化数据库操作。在Eloquent中,可以使用"Select as"语法来自定义查询结果的字段名,包括将某个字段重命名为"id"。

然而,当使用"Select as id"语法将某个字段重命名为"id"时,返回的结果可能会是零"0"。这是因为在Eloquent中,当将某个字段重命名为"id"时,Eloquent会将该字段的值作为模型对象的主键值。而默认情况下,Eloquent会将主键字段的值转换为整型。如果原始字段的值无法转换为整型,那么返回的结果就会是零"0"。

这种情况通常发生在原始字段的值为字符串类型,且无法转换为整型的情况下。例如,如果原始字段的值为"abc",那么将其重命名为"id"时,返回的结果就会是零"0"。

需要注意的是,这种行为是Eloquent的默认行为,可以通过修改模型的属性来改变。可以在模型类中定义一个属性$primaryKey,并将其值设置为重命名字段的名称,以告诉Eloquent使用该字段作为主键。

总结起来,Eloquent Select as id返回零"0"的原因是将某个字段重命名为"id"时,如果原始字段的值无法转换为整型,返回的结果就会是零"0"。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么 insert 配置 SELECT LAST_INSERT_ID() 返回0呢?

今天这个问题主要体现在大家平常用的Mybatis,在插入数据的时候,我们可以把库表索引的返回值通过入参对象返回回来。但是通过我自己手写的Mybatis,每次返回来的都是0,而不是最后插入库表的索引值。...通常只要配置的没问题,返回对象中也有对应的 id 字段,那么就可以正确的拿到返回值了。PS:问题就出现在这里,小傅哥手写的 Mybatis 竟然只难道返回一个0!...重点:bug就发生在这里,为什么呢?...因为最开始这两条语句执行的时候,在获取链接的时候,每一条都是获取一个新的链接,那么也就是说,insert xxx、select LAST_INSERT_ID() 在两个 connection 连接执行时...LAST_INSERT_ID() 所以最终的查询结果为 0 了就!

93930
  • 点后为什么不是0

    下一站、守候:kuka机器人点校准后点位置是有度数的,其他机器人点校准之后在机械点是0°,库卡这样的设定是有什么含义呢。...2000系列的机器人做完点的各个轴角度{A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0} QUANTEC系列的机器人做完点的各个轴角度{A1 -20,A2 -120,A3 110,...A4 0,A5 0,A6 0} 这其实是在设计初考虑到机器人的点探针装置还有一个是机器人的姿态是否能方便操作。...假如机器人做完点的姿态是每个轴都在0度的话,那机器人将一直延伸到工作范围的最远端,成一个水平状态,这个姿态并不是所有的现场都有这样的空间允许的。所以机器人的点并不是0度。...就有了{A1 -20,A2 -120,A3 110,A4 0,A5 0,A6 0} 哈哈这下你明白了吧 当然如果你想让做完点后所显示的角度是自己设计需要的一个角度,比如A1 90° 那也不是做不到,我们是可以通过系统变量进行调整的

    35720

    通过 Laravel Eloquent 模型实现简单增删改查操作

    ', '>', 0)->select('id', 'title', 'content')->get(); 对应查询结果如下: ?...因为是查询构建器,所以我们还可以在模型查询操作中对查询结果进行排序和分页: $posts = Post::where('views', '>', 0)->orderBy('id', 'desc')->offset...此外,如果查询的条件是主键 ID 的话,还可以将上述调用简化为通过 find 方法来实现: $user = User::find(1); 返回结果与上面完全一致。...: $user = User::findOrFail(111); 如果 id=111 的记录在 users 数据表中不存在,就会返回 404 响应: ?...注:除获取单条记录之外,ELoquent 模型类查询返回的结果都是集合类,因此你可以在查询结果上调用集合类的所有方法,还可以自定义模型对应集合类,详情请查看对应官方文档。

    8K20

    深入理解 Laravel Eloquent(三)——模型间关系(关联)

    Eloquent是什么 Eloquent 是一个 ORM,全称为 Object Relational Mapping,翻译为 “对象关系映射”(如果只把它当成 Database Abstraction...假如我们有两个模型:User 和 Account,分别对应注册用户和消费者,他们是一对一的关系,那么如果我们要使用 Eloquent 提供的一对一关系方法,表结构应该是这样的: user: id ......由于前面的 `find(10)` 已经锁定了 id = 10,所以这段函数对应的 SQL 为: `select * from account where user_id=10`。...大家应该也已经注意到了,这里不是简单的 `-> hasOneAccount` 而是 `->hasManyPays()->get()`,为什么呢?...hasOneAccount')->take(10)->get() 这样生成的 SQL 就是这个样子的: select * from account where id in (1, 2, 3, ... .

    2.7K30

    PHP-web框架Laravel-Eloquent ORM(三)

    四、查询构建器Laravel框架中的Eloquent ORM提供了方便的查询构建器,用于构建复杂的查询语句。下面是一些常用的查询构建器方法。...select方法select方法用于选择需要返回的字段,例如:$users = User::select('name', 'email')->get();上述代码中,只返回用户的姓名和邮箱字段。...join方法join方法用于关联查询,例如:$users = User::join('orders', 'users.id', '=', 'orders.user_id')->get();上述代码中,查询了用户和订单表中符合条件的所有记录...总结通过上述文档和示例,我们可以看出Laravel框架中的Eloquent ORM提供了便捷的对象关系映射功能,可以大大简化开发者的数据库操作。...Eloquent ORM提供了大量的方法来操作数据,包括增删改查等,具体可以参考官方文档。

    1.5K41

    Laravel5.7 Eloquent ORM快速入门详解

    * * @var string */ protected $table = 'my_flights'; } 主键 Eloquent 默认每张表的主键名为 id,你可以在模型类中定义一个...集合 对 Eloquent 中获取多个结果的方法(比如 all 和 get)而言,其返回值是 Illuminate\Database\Eloquent\Collection 的一个实例,Collection...404 响应编写额外的检查: Route::get('/api/flights/{id}', function ($id) { return App\Flight::findOrFail($id);...2, 3); 通过查询删除模型 当然,你还可以通过查询删除多个模型,在本例中,我们删除所有被标记为无效的航班: $deletedRows = App\Flight::where('active', 0)...注:如果你的全局作用域需要添加列到查询的 select 子句,需要使用 addSelect 方法来替代 select,这样就可以避免已存在的 select 查询子句造成影响。

    15.1K41
    领券