laravel7 ORM和laravel模型操作
1、什么是ORM
对象关系映射(Object Relation Maping),这个关系就是关系数据库。因此,顾名思义,ORM的核心是我们通过操作对应来操作关系数据库。
ORM的优点:
ORM提供了对象属性与表字段的映射,可以大大提高开发效率
ORM的缺点:
ORM牺牲了一部分性能,同时带来了学习的成本,对于复杂的、大的数据量的查询建议由成型的使用方案,否则可能会出现性能问题,(虽然我还没有遇到),因此到底要不要用ORM是一个比较重要的考量。
2、laravel中的ORM
来源于laravel手册:laravel中提供了漂亮、简洁的 ActiveRecord 实现来和数据库交互。每个数据库表都有一个对应的「模型」用来与该表交互。你可以通过模型查询数据表中的数据,并将新记录添加到数据表中,你可以进行CURD操作。
3、实现案列
模型文件存放目录
app底下可以自定义一个目录用来保存模型文件夹
创建模型文件所在的(我们分为直接在Models底下和Models底下分模块创建进行测试)
直接在Models底下创建(表名用复数):

Models底下分模块创建(表名不用复数):

效果如图所示:

ps:命令后面加上-m参数可以创建模板并生成迁移文件

php artisan make:model 模型文件名
# 分目录的
php artisan make:model Models/Member
# 创建模板并生成迁移文件
php artisan make:model Models/Article –m
-m 生成迁移文件

模型对表的一些限制(laravel中ORM的锲约)
指定表名
模型所对应的默认表名是模型类名复数形式,如果表名不统一则需要指定一下,如图所示:

为什么表名要用复数?
因为更好的支持RESTFULL类型的风格。
指定主键名primary key
laravel中默认的主键ID名为id,如果你创建的表字段中主键ID的名称不为id,则需要通过 $primaryKey 来指定一下。
指定时间戳
模型操作会认为在你的数据库表有 created_at 和 updated_at 字段。如果你不希望让模型来自动维护这两个字段,可在模型内将 $timestamps 属性设置为 false
public $timestamp = false;//注意,这里是public权限
批量赋值操作
执行批量赋值时,要先定义白名单和黑名单,用$fillable和guarded这个数组来定义允许添加的字段和不允许添加的字段。
protected $filable=[];//白名单,允许添加的字段
protectd $guarded=[];//黑名单,不允许添加的字段
CURD基本操作
增
方法一:create方法,要设置$filable或者$guarded
创建控制器并调用模型,如下图所示:(要注意在控制器中使用对应命名空间才可以调用模型的方法)


上述方法会返回一个插入刚才数据的对象,共后续操作。
如下所示


方法二:insert,不推荐因为不安全
返回true or false

上述入库的操作用create操作。
查

# 查询单条
first()
# 查询多条
get()
# 条件
where()
# 排序
orderBy()
# 取指定的值
value()
# 取指定的列
pluck()
# 查询总记录数



改
update


删
因为删除之前工作使用update进行的,所以就不深入了
硬删除:destory和delete
软删除:softDeletes(需要配置)
laravel7 ORM和laravel模型操作的更多相关文章
- laravel 模型操作
1. 简介 2. 创建模型 //模型文件默认创建在app目录下,也可以指定创建在某个文件夹下,如Model/Goods 1. php artisan make:model Goods 2. 这种方式会 ...
- 黑马lavarel教程---5、模型操作(AR模式)
黑马lavarel教程---5.模型操作(AR模式) 一.总结 一句话总结: AR: ActiveRecord :Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型 ...
- Laravel 5.2 四、.env 文件与模型操作
一..env文件 .env 文件是应用的环境配置文件,在配置应用参数.数据库连接.缓存处理时都会使用这个文件. // 应用相关参数 APP_ENV=local APP_DEBUG=true //应用调 ...
- django创建ORM模型、通过ORM模型操作单个表、ORM模型常用字段
一.ORM简介 ORM ,全称Object Relational Mapping,中文叫做对象关系映射,通过ORM我们可以通过类的方式去操作数据库,而不用再写原生的SQL语句.通过把表映射成类,把行作 ...
- Django中模型层中ORM的单表操作
ORM概念: MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...
- Laravel模型事件的实现原理详解
模型事件在 Laravel 的世界中,你对 Eloquent 大多数操作都会或多或少的触发一些模型事件,下面这篇文章主要给大家介绍了关于Laravel模型事件的实现原理,文中通过示例代码介绍的非常详细 ...
- Laravel 模型事件入门
Laravel 模型事件允许你监听模型生命周期内的多个关键点,甚至可以在阻止一个模型的保存或者删除. Laravel 模型事件文档 概述了如何使用钩子将对应事件与相关的事件类型关联起来,但是本文的主旨 ...
- ORM的单表操作
ORM的单表操作 MTV框架包含一个重要的部分就是ORM----对象关系映射(Object Relational Mapping),它实现了数据模型与数据库的解耦,即数据模型的设计.利用它我们不需要依 ...
- ORM对象/关系模型
1 ORM 对象关系映射(ORM)提供了概念性的.易于理解的模型化数据的方法.ORM方法论基于三个核心原则: 简单:以最基本的形式建模数据. 传达性:数据库结构被任何人都能理解的语言文档化. 精确性: ...
随机推荐
- Lvs+Keepalived+MySQL Cluster架设高可用负载均衡Mysql集群
------------------------------------- 一.前言 二.MySQL Cluster基本概念 三.环境 四.配置 1.LB-Master及LB-Backup配置 2.M ...
- .NET6: 开发基于WPF的摩登三维工业软件 (2)
在<.NET6: 开发基于WPF的摩登三维工业软件 (1)>我们创建了一个"毛坯"界面,距离摩登还差一段距离.本文将对上一阶段的成果进行深化,实现当下流行的暗黑风格UI ...
- CSS3带你实现3D转换效果
前言 在css3中允许使用3D转换来对元素进行格式化,在原本只是2D转化的平面中引入了Z轴.在这之前我们讲解了css3中的2D转换,也就是二维空间变换,本篇的3D转换就是基于原来的2D转换而来,与2D ...
- MySQL中 BETWEEN ... AND ...
MySQL中 BETWEEN ... AND ... 1. 准备测试数据 CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, ...
- 搭建 Nginx 服务
今日内容 上一篇测试 c出现问题 web 服务 部署 Nginx 内容详细 上一篇测试 NFS共享文件步骤 - 服务端 [root@backup ~]# yum install nfs-utils r ...
- suse 12 双网卡bonding模式
文章目录 工欲善其事,必先配静态ip 网卡bonding eth0 eth1 192.168.70.52 192.168.70.55 工欲善其事,必先配静态ip 重要的事情说三遍 修改配置之前,先备份 ...
- design PLL
PLL PLL主要是NCO中通过相位比较器,控制压控振荡器,控制频率.
- Tomcat是什么?
Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器. 为什么我们需要用到Tomcat 如果你学过html,css,你会知道你写的 ...
- ios cannot use "@throw" with objective-c exceptions disabled 问题解决方案
http://blog.csdn.net/huayu_huayu/article/details/51781182 我不转载 我跳转 哈哈哈哈哈哈 其实也就是 解决办法:修改target -&g ...
- CSRF靶场练习
实验目的 了解CSRF跨站伪造请求实验 实验原理 CSRF的原理 CSRF(Cross-site Request Forgery)是指跨站点请求伪造,也就是跨站漏洞攻击,通常用来指 WEB 网站的这一 ...