laravel5.6 Eloquent orm的一个坑

【Laravel】Eloquent ORM的底层实现 动机 首先来说一个Eloquent ORM的设计思想:Eloquent ORM就是将数据库中复杂的数据结果封装成更加smart的接口提供给用户使用。数据库中每一个表对应一个类,而类的实例对应数据库表中的一行记录,数据库中的列值会对应到类的属性上。一直在使用这个东西,之前并没有深入去了解过,借这个机会查阅了Laravel底层的源码。 笔者的环境:Laravel5.5, Sublime 阅读详情

背景

博主一项目使用laravel5.6 + laravel-admin,现使用了laravel-admin的select的联动控件。实现省市区三级联动的功能。看了官方的文档,
1.png

问题

官方文档明确了对控件加载的数据结构有要求,接口返回的数据必须是id,text的数组类型,那么问题来了,博主在表中存放的真正id不是叫id,叫id的为自增的主键值,而真正的id字段名叫’cid’(varchar类型),于是orm命个别名吧
2.png

此时,发现取出的id值一直不对,输出后所有的id值为9223372036854775807(BIGINT的最大值)

原因

经过排查,博主发现,laravel的model操作会将字段为id的值自动转为int型,若你真实的字段本身为int型则没问题,一旦你真实的字段为varchar类型的,则会产生如上错误。

解决

博主最后对数据结果集使用了toArray方法,而后对结果遍历更改了字段名为‘id’
3.png

请关注我的订阅号

订阅号.png

Laravel 5.5 Eloquent ORM - 快速入门 简介 Laravel 内置的 Eloquent ORM 提供了一个美观、简单的与数据库打交道的 ActiveRecord 实现。 每张数据表都对应一个与该表进行交互的模型(Model),通过模型类,你可以对数据表进行查询、插入、更新、删除等操作。 定义模型 我们从创建一个 Eloquent 模型开始,模型类默认位于 app 目录下,但推荐将模型存放在 app/Models 目录下。 所有... 阅读详情

相关推荐

Laravel 5.5 Eloquent ORM - 关联关系

简介 数据表经常要与其它表做关联,比如一篇博客文章可能有很多评论,或者一个订单会被关联到下单用户。 Eloquent 让组织和处理这些关联关系变得简单,并且支持多种不同类型的关联关系: 一对一 一对多 多对多 远层一对多 多态关联 多对多的多态关联 定义关联关系 关联关系以 Eloquent 模型类方法的方式定义。 和 Eloquent 模型本身一样,关联关系也是强大的查询构建...

彳亍 780

MySQl求奇数和函数_php-mysql在查找和插入时将整数截断为奇数

我在php中使用Laravel的Eloquent插入并查找记录.发生的是,当我插入整数时,这里是-1001094515039,它将其更改为-367135071并将其存储在字段中.字段类型为Bigint,长度为20个字符,我曾尝试将其存储在文本类型字段和Varchar字段中,但是会发生相同的情况.另外,当我在phpMyAdmin中手动将其更改为-1001094515039时,我尝试使用Eloquen...

weixin_30520605的博客 240

Laravel 5.5 Eloquent ORM - 模型数据转化

简介 当构建 JSON API 时,经常需要转化模型和关联关系为数组或 JSON。 Eloquent 提供了便捷方法以便实现这些转换,还可以控制哪些属性被包含到序列化中。 转化为数组 想要转化模型及其加载的关联关系为数组,可以使用 toArray 方法。 toArray 方法是递归的,所有属性及其关联对象属性(包括关联的关联)都会被转化为数组。 $user = App\User::w...

彳亍 1728

Laravel-EloquentORM 基础

欢迎大家关注我的其他Github博客和简书,互相交流! 今天学习了Laravel中的ORM基础部分,现在分享一下。 Eloquent ['eləkwənt] 时,数据库查询构造器的方法对模型类也是也用的,使用上只是省略了DB::table(‘表名’)部分。在模型中使用protected成员变量$table指定绑定的表名。<?phpnamespace App;use Illuminate\Dat

coder for php 的博客 1124

Laravel 5.5 Eloquent ORM - 访问器和修改器

简介 访问器和修改器允许你在获取模型属性或设置其值时格式化 Eloquent 属性。 例如,你可能想要使用 Laravel 加密器对存储在数据库中的数据进行加密,并且在 Eloquent 模型中访问时自动进行解密。 除了自定义访问器和修改器,Eloquent 还可以自动转换日期字段为 Carbon 实例甚至将文本转换为JSON。 访问器 &amp; 修改器 定义访问器 要定义一个访问器...

彳亍 999

NX/UG二次开发—CAM—设置程序修剪边界Boundary

最近做了一个设置CAM程序边界的小工具,分享一下经验(官方的代码在文章末尾处),以下均以修剪边界曲线为例。 以下为官方提供的源码: /***************************** Include Files **********************************/ #include <stdlib.h> #include <uf.h> #include <uf_obj.h> #include <uf_object_type

门前大桥下,游过一群鸭,快来看一看,原来是C++ 3733

laravel5.6框架基础入门精讲

这个视频主要讲了laravel5.6版本路由 控制器 请求响应 模型 视图 。。。太多了,详细的看目录就行了,基本上框架开发常用的功能都讲了。应该算是目前比较详细的框架教程了

C语言编写Picard迭代和牛顿迭代法

为了完成学校计算方法的作业,花了两个多星期将所有实验报告编写出来,看到同桌找代码的辛苦,优快云也没有这类代码,我只是一时兴起,想分享我写的代码与大家共飨,有错误还请多多指正,代码都不难,也是为了让优快云帮我保存下,我辛辛苦苦做出来的,倘若能给别人带来一丝一毫的帮助,我都万分荣幸。 1:什么是Picard迭代 先弄一个满足f(x) = 0的函数将其转化为x= 正在上传… 重新上传 取消 ...

mohenxiang的博客 4699

Laravel 表单验证常用的验证规则和示例

Laravel 表单验证常用的验证规则和示例 <?php namespace App\Http\Controllers; use App\Models\Users; use Illuminate\Support\Facades\Validator; use Symfony\Component\HttpFoundation\Request; class UsersController...

Websites 5335

mipi deskew原理理解

何为skew, 从字面意思看是倾斜了,不对齐了;放在mipi的传输中意思就是clock lane和data lane 及data lane与data lane间出现了相位差;一旦出现相位差,大家采样数据时就可能不在同一个节拍上,会出现传输错误。所以就要做deskew,通过做deskew来使得大家重新对齐,在同一个节奏下传输数据. 一般当data rate高于1.5G时建议开启deskew。

lx123010的专栏 8089

2022年电赛F题23年电赛D题-信号调制度测量装置说明中提到带通采样定律。

另外,当对于一个频率很高的射频信号采样时,如果采样频率设的太低,对提高采样量化的信噪比是不利的。低通采样定理在《信号与系统》教材中进行了详细的讨论,但未对带通信号的采样定理进行描述,国内樊昌信和曹丽娜老师编写的《通信原理》第10章第2小节有所描述,但没有详细的公式推导,容易给初学者产生超过该最低采样频率即不会产生频谱混叠的假象。故采样频率没选好,就会使周期性频谱搬移过程中造成频谱混叠,既然频谱和原信号的频谱对不上了,故就无法无失真恢复原信号了,总之,频域波形不出现重叠是无失真传输的重要保障。

qq_64919823的博客 2181

Laravel7.15.0学习中遇到的坑—Eloquent ORM的使用

前言: 最近在学习 laravel 框架,学习的版本是 7.15.0 ,记录一下学习过程中遇到的问题和难点以及一些总结。 介绍 Laravel 内置的 Eloquent ORM 提供了一个美观、简单的与数据库打交道的 ActiveRecord 实现,每张数据表都对应一个与该表进行交互的模型(Model),通过模型类,你可以对数据表进行查询、插入、更新、删除等操作。所有 Eloquent 模型都继承自 Illuminate\Database\Eloquent\Model 类,可以使用 Artisan 命令来创

morishima的博客 473

OSMDroid(1)——OSM简介,基础例子搭建

1.OSMDroid简介 Osmdroid是一款完全开源的地图基本操作SDK,相比于现在普遍使用的百度地图,高德地图,谷歌地图等最大的好处就是开源。 最近在做一个军方项目,要求完全不能联网,从开发到应用整个阶段都是在局域网进行,相比之下采用了OSMDroid这个SDK作为解决方案。 先来看OSMDroid,便是(OpenStreetMapForAndroid),后面都简称OSM...

robotskly的博客 6177

Laravel Eloquent ORM理解

laravel Eloquent ORM 文档:https://laravel-china.org/docs/laravel/5.5/eloquent/1332 首先,什么是Eloqent ORM  官方手册是如此解释的:“Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库的互动。 每个数据库表会和一个对应的「模型」互动”,好吧问题来了  ...

李澎昆的博客 4288

【IPC】ONVIF Device Manager 测试工具

介绍onvif 协议测试工具

以实战经验介绍行业知识 1953

如何在 Ubuntu 24.04 LTS 上安装 SSH 服务器?

Ubuntu是一个基于Debian的开源Linux操作系统,由Canonical Ltd.开发和维护。Ubuntu致力于提供用户友好、稳定且安全的操作系统环境,适用于个人用户、企业和服务器等不同场景。Ubuntu 24.04 LTS是Ubuntu发布的一个长期支持版本,LTS代表长期支持(Long Term Support)。这意味着Ubuntu 24.04 LTS将获得长达5年的安全更新和维护支持,使其成为企业和个人用户的理想选择。

网络技术联盟站 5887

Laravel[Eloquent ORM简介、模型的建立及查询数据]

前几篇文章我们讲完了查询构造器以及DB facade,而这篇文章我们将讲到Eloquent ORM,让我们一起来学习吧!

Amecai的学习博客 1706

【麒麟系统】Rsync文件复制与同步工具

本文摘要: Rsync是一款Linux/Unix系统标配的高效文件同步工具,支持增量传输、SSH加密、断点续传等核心功能,相比SCP具有显著优势。文章详细解析了Rsync的五种标准语法格式和常用参数组合,重点介绍了本地同步、远程SSH同步(推送/拉取)的实操方法,并提供了密钥免密登录配置方案。针对企业运维场景,还讲解了文件过滤、镜像同步(--delete)、迁移同步(--remove-source-files)、空运行预校验(--dry-run)等高级功能,以及带宽限速等优化技巧,帮助用户安全高效地完成各类

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 997

Laravel Eloquent ORM 的核心类的知识体系

Laravel 的 Eloquent ORM 是一个功能强大的对象关系映射工具,用于将数据库表中的数据映射为 PHP 对象,并提供了一套直观的 API 来操作这些数据。 (2) 作用: 是 Eloquent 查询构建器的核心类,负责构建和执行查询。 它提供了链式调用方法(如 、 等),并支持预加载()。 关键特性: 将查询结果映射为模型实例。 协作底层的查询构建器()生成 SQL。 示例: (3) 作用: 关系类(如 、、 等)定义了模型之间的关联关系。 它们通过 和底层查询构建器

长风破浪会有时的博客 1972

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Laravel Eloquent = ORM?

将关系型数据库中的“表/行/列”映射为面向对象语言中的“类/对象/属性”,使开发者能用操作对象的方式操作数据库,而无需直接写 SQL。Laravel Eloquent 是一个 ORM,但它是一个融合了 ActiveRecord 模式、查询构建器、关系管理、事件系统等特性的现代 ORM。它简化了数据库交互,同时不牺牲灵活性,是 Laravel “优雅语法”和“开发效率”的核心支柱。理解 Eloquent,就理解了 Laravel 如何将数据库操作提升为面向对象的自然表达——这正是 ORM 的终极目标。

长风破浪会有时的博客 424

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

把laravel的ORM集成进你的项目,Eloquent作为独立的PHP模块载入

相信很多PHP项目不是基于laravel框架来写的,但写过laravel应用的PHPer会比较喜爱laravel的ORM,也因为最近要写一个PHP脚本(非laravel应用)需要用到数据库的相关操作,so,在脚本中使用Eloquent,这样比直接写PDO爽多了。再说个题外话,PHP很适合写服务器脚本,脚本就是力求简单、快速、轻量,所以直接在PDO也是不错的,我是经常用PDO来写脚本的数据库操作,无...

赛道上的风景 2006

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

laravel框架5种的Eloquent ORM的使用

模型的使用: &lt;?php namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model { //指定表名: protected $table="student"; //指定id protected $primaryKey="id"; ...

rao1255165570的博客 682

如何在 ThinkPHP 中整合 Laravel Eloquent ORM

前言 之前维护的旧项目采用的 ThinkPHP 3.2,后面学习了 Laravel 后,觉得 TP 的 Model 功能没有 Laravel 强大和方便,并想把 Laravel 里的 Eloquent 用在 TP 里。 好在 Laravel 的 ORM 是独立成包的,可以用于符合要求的其他 PHP 系统中。 整合 要使用的是 illuminate/database 。 安装 illuminate...

X先生说 1117

Laravel 的 Eloquent ORM学习

创建模型首先,创建一个 Eloquent 模型,生成的模型通常放在 app 目录中,但你可以通过 composer.json 随意地将它们放在可被自动加载的地方。所有的 Eloquent 模型都继承了 Illuminate\Database\Eloquent\Model 类。 示例: 12345678910111213...

cpongo881 448
上一篇: win10 samba共享问题
下一篇: 硬盘损坏-数据恢复之路
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值