laravel框架总结(八) -- ORM模型
ORM模型简介
1 定义模型
class Flight extends Model {
/**
* 与模型关联的数据表。
*/
protected $table = 'flight';
/**
* 指定主键。
*/
public $primaryKey = 'id';
/**
* 指定是否模型应该被戳记时间。
*/
public $timestamps = false;
/**
* 模型的日期字段保存格式。
*/
protected $dateFormat = 'U';
/**
* 此模型的连接名称。
*/
protected $connection = 'connection-name';
}
2 添加模型(增)
//首先创建一个新模型实例
$flight = new Flight;
//给这个模型添加属性
$flight->name = $name;
$flight->length = $length;
//... 其它更多属性
$flight->save();
$flight = Flight ::create(Input::all());
$input = [
'name'=>'test',
'content'=>'testflight',
'length'=>2000,
// 'price'=>1880, 即使这里写了价格,因为是 受保护的,调用下面的create,也不会插入成功 ];
$flight = Flight ::create($input);
//如果想成功,那么就重新定义一下属性,然后调用save方法
$flight ->price= 200;
$flight ->save();
//$data是可以是二维数组
Flight::insert($data)
$flight = App\Flight::firstOrCreate(['name' => 'Flight 10']);
$flight = App\Flight::firstOrNew(['name' => 'Flight 10']);
$flight->save(); //存入到数据库
3 删除模型(删)
$flight = App\Flight::find(1);
//先从是数据库中取回数据
$flight->delete();
//实现删除
App\Flight::destroy(1);
App\Flight::destroy([1, 2, 3]);
App\Flight::destroy(1, 2, 3);
$deletedRows = App\Flight::where('active', 0)->delete();
4 更新模型(改)
$flight = App\Flight::find(1);
$flight->name = 'New Flight Name';
$flight->save();
App\Flight::where('active', 1) ->where('destination', 'San Diego') ->update(['delayed' => 1]);
5 取回模型(查)
$flights = Flight::all();
//我们遍历查找每个返回的flight实例,并且输出每个实例的name字段
foreach ($flights as $flight) {
echo $flight->name;
}
$flights = App\Flight::where('active', 1) ->orderBy('name', 'desc') ->take(10) ->get();
//分块结果
Flight::chunk(200, function ($flights) {
foreach ($flights as $flight) {
//
}
});
$flight = App\Flight::find(1);
$flight = App\Flight::where('active', 1)->first();
//找不到抛出异常
$model = App\Flight::findOrFail(1);
$model = App\Flight::where('legs', '>', 100)->firstOrFail();
$count = App\Flight::where('active', 1)->count();
$max = App\Flight::where('active', 1)->max('price');
laravel框架总结(八) -- ORM模型的更多相关文章
- Django框架 (七) Django ORM模型
ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装
- laravel框架模型model的创建与使用方法
这篇文章给大家介绍的内容是关于laravel框架模型model的创建与使用方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.创建model 2. 1 2 3 4 5 6 7 8 ...
- laravel ORM 模型关联 with () 用法
关联时想对关联表数据筛选时:MySQL查询: SELECT * FROM A LEFT JOIN B ON A.B_id = B.id AND B.condition = $condition ORM ...
- laravel框架总结(十) -- 返回值
以前用CI框架对于返回值没有过多关注,但是发现使用laravel框架的时候出现了一些小问题,特意实践总结了一些常用情形,希望对大家有所帮助 先理解几个概念: 1>StdClass 对象=&g ...
- [麦先生]初学Laravel框架与ThinkPHP框架的不同(2)
在经过了一段时间的开发后,我对Laravel框架的认识又在逐步的加深,对于这个世界占有量NO.1的框架... 我想说,我已经在逐步的感受到他的恐怖之处... 一.建表--Laravel在数据库建表上 ...
- 关于Laravel框架
第1讲-Laravel介绍 1.1 什么是Laravel laravel是目前一个比较主流的框架,现在很多互联网的公司都在使用该框架.该框架的前身是symfony框架 Laravel的定位就是做一个简 ...
- 初学Laravel框架与ThinkPHP框架的不同
作为一个PHP菜鸟初学Laravel框架 在学习过程中我发现了其与TP框架的不同点,由于时间问题和认识还不够完善我先写出其中几点,有错误的地方希望各位大牛斧正... 1.渲染模版方式的不同:在Lara ...
- ORM模型简介
ORM模型简介 1>什么是ORM? ORM,即 Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在操作具体的 ...
- PHP程序Laravel框架的优化技巧
Laravel是一套简洁.优雅的php Web开发框架(PHP Web Framework).它可以让你从杂乱的代码中解脱出来,可以帮你构建一个完美的网络app,而且每行代码都简洁.富于表达力.而性能 ...
随机推荐
- tensorfolw配置过程中遇到的一些问题及其解决过程的记录(配置SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving)
今天看到一篇关于检测的论文<SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real- ...
- php token的生成
转载自:http://blog.snsgou.com/post-766.html --->非开放性平台 --->公司内部产品 接口特点汇总: 1.因为是非开放性的,所以所有的接口都是封闭的 ...
- Linux基本操作命令
Linux基本操作命令 首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操作界面的人机接口,例如dos.我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如do ...
- ORA-29275: partial multibyte character
查询表报错 修改方式1 和字符集存储方式有关系 ,修改客户端和服务器的字符集存储方害死 修改方式2 修改表的字段由nvarchar2修改为varchar2
- npm总结
1.npm install -g 模块 全局安装 2.npm install 模块@version 安装具体摸个版本的模块 ...
- ADO.NET、NHibernate和Entity Framework的比较
---原文地址:http://www.xuebuyuan.com/2162973.html 1,ADO.NET属于传统的数据访问工具,开发的时候需要我们手动去编写操作数据库的各种操作,当然性能也就不用 ...
- composer--------------通过composer.json下载laravel包----barryvdh/laravel-debugbar
1.去Packagist网站https://packagist.org/packages/barryvdh/laravel-debugbar#dev-master找到
- LinQ 简单使用
LinQ: 1.LinQ to Sql类(NET Language Integrated Query (LINQ) ) LINQ定义了大约40个查询操作符,如select.from.in.where以 ...
- 1.<%@Page%>中的Codebehind、AutoEventWireup、Inherits有何作用?
AutoEventWireup --- 指示是否自动启用页事件. Codebehind --- 指示后台代码文件. Inherits --- 继承类. AutoEventWireup:指示该页的事件是 ...
- SourceInsight阅读Python---张子芳
首先从http://www.sourceinsight.com/public/languages/下载Python的配置文件Python.CLF ,然后对SourceInsight作如下配置: (1) ...