文档章节

每天laravel[035]-laravel 基础知识 --- Eloquent 模型之关系映射

 刘景刘恒
发布于 2017/06/07 09:13
字数 579
阅读 1
收藏 0

简介:

看看老Laravel 是怎么吹嘘自己的情况!

Laravel 所自带的Eloquent ORM 是一个优美、简洁的 ActiveRecord 实现,用来实现数据库操作。

每个数据表都有一个与之相对应的“模型(Model)”,用于和数据表交互。

 

定义:

创建 Eloquent模型(model)。

默认配置于位置为app目录下,但是这个是可以commposer.json配置文件修改。

所有的Eloquent 模型(model)都继承自 Illuminate\Database\Eloquent\Model类

 

生成一个模型(model):

php artisan make:model User

希望生成模型(model)的同时生成"数据库将迁移”

两种方式:

php artisan make:model User --migration

php artisan make:model User -m

 

简单的应用:

例如以下代码:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Mode{}

 

设置数据表 表名:

protected $table = 'my_flights';

主键:

protected $prmaryKey = 'id';

关于默认字段 create_at 及 update_at 字段,可以通过将 $timestaps 属性设置为 false;

public $timestamps = false;

日期存储方式,可以设置 U 代表为 JSON 的格式日期:

protected $dateFormat = 'U'

如果修改默认的连接,可以改成

protected $connection = 'connection-name'

 

接收到 单独的 数据

$flight = App\Flight::find(1);

$flight = App\Flight::where('active',1)->first();

$model = App\Flight::findOrFail(1);

$model = App\Flight::where('legs','>',100)->firstOrFail();

// 默认返回的就是会进行404 返回。

集合性反馈:

$count = App\Flight::where('active',1)->count();

$max = App\Flight::where('active',1)->max('price');

 

简单的插入:

$flight = new Flight;

$flight->name = $request->name;

$flight->save();

 

基本的更新:

$flight = App\Flight::find(1);

$flight->name = 'New Flight Name';

$flight->save();

也可以更新的一定条件的

App\Flight::where('active',1)

->update(['delayed'=>1]);

 

 

批量插入数据:

需要两个东西:fillable 及 guarded 

 

protected $fillable = ['name']; // 白名单

protected $guarded = ['price'];// 黑名单

 

其它的创建方法:

firstOrCreate() 跟 firstOrNew()

 

 

删除数据:

普通删除

$flight = App\Flight::find(1);

$flight->delete();

 

通过Key删除

App\Flight::destroy(1);

App\Flight::destroy([1,2,3]);

App\Flight::destroy(1,2,3);

 

条件删除

$deleteRows = App\Flight::where('active',0)->delete();

 

软删除

protected $dates = ['deleted_at'];

Schema::table('flights',function($table){

     $table->softDeletes();

});

可以使用 trashed 方式进行检测是否可以通过 trashed方式进行

if($flight->trashed()){}

 

查询软查询数据:

$flights = App\Flight::withTrashed()

     ->where('account_id',1)

     ->get();

 

$flight->history()->withTrashed()->get();

 

使用 orWhere查询

User::where(function($query){

     $query->where()

          ->orWhere();

})->get();

 

恢复被删除的数据:

$flight->restore();

 

永久删除:

$flight->forceDelete();

 

事件?????

php初学者---千锋php课堂笔记

© 著作权归作者所有

粉丝 1
博文 172
码字总数 139067
作品 0
私信 提问
3、深入理解 Laravel Eloquent(三)——模型间关系(关联)

深入理解 Laravel Eloquent(三)——模型间关系(关联) 在本篇文章中,我将跟大家一起学习 Eloquent 中最复杂也是最难理解的部分——模型间关系。官方英文文档中叫 Relationships,个人认为...

我爱祥子
2016/01/10
61
0
基于 laravel 4.1 的简易博客实例

项目简介 这是一个 laravel-4.1 的 Demo,一个简单的博客实例。 涵盖知识点: 路由、过滤器。 Eloquent 基础、模型对象关系、分页、搜索、排序。 控制器、blade 模板。 Mail 操作。 Auth 类的...

成武
2014/02/19
5.3K
9
如何判断Laravel Eloquent获取数据结果集是否为空

在使用Laravel Eloquent模型时,我们可能要判断取出的结果集是否为空,但我们发现直接使用is_null或empty是无法判段它结果集是否为空的。 var_dump之后我们很容易发现,即使取到的空结果集,...

小梦呐
02/27
156
0
Laravel框架一:原理机制篇

http://www.cnblogs.com/XiongMaoMengNan/p/6644892.html Laravel作为在国内国外都颇为流行的PHP框架,风格优雅,其拥有自己的一些特点。 一. 请求周期   Laravel 采用了单一入口模式,应用...

hisense20112784
2017/08/11
0
0
Laravel Eloquent—模型间关系(关联)

Eloquent是什么 Eloquent 是一个 ORM,全称为 Object Relational Mapping,翻译为 “对象关系映射”(如果只把它当成 Database Abstraction Layer 数组库抽象层那就太小看它了)。所谓 “对象...

mdoo
2015/10/29
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

spring boot actuator

actuator 是监控系统健康的工具,引入 spring-boot-starter-actuator会暴露一些endpoint. 可通过如下配置来配置这些endpoint的基本配置: 可通过http:${url}:28081/management/actuator/*来访...

ZH-JSON
14分钟前
2
0
9.特殊权限 软连接 硬链接

6月7日任务 2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件 2.18 特殊权限set_uid 会发现有些文件的前三位并不是rwx而是rws,而s就代表...

oschina130111
26分钟前
1
0
好程序员web前端分享如何自学前端?步骤是什么?

好程序员web前端分享如何自学前端?步骤是什么?简单粗暴直接上学习流程。 1、学习HTML+CSS基础 HTML5新特性和CSS3 这个部分主要是需要记忆的知识点比较多,建议大家在学习的时候多加练习,最...

好程序员官方
27分钟前
2
0
创龙基于TI TMS320C6748定点/浮点DSP C674x + Xilinx Spartan-6 FPGA开发板

TL6748F-EVM是一款基于广州创龙SOM-TL6748F核心板设计的开发板,底板采用沉金无铅工艺2层板设计,它为用户提供了SOM-TL6748F核心板的测试平台,用于快速评估SOM-TL6748F核心板的整体性能。 ...

Tronlong创龙
33分钟前
1
0
8年前诞生于淘宝,细数阿里云RPA 的前世今生

9月10日,踏入55岁的马云正式卸任阿里巴巴董事局主席一职,由阿里巴巴集团CEO张勇接任。公寓创业、西湖论剑、美国敲钟,从成立到登顶中国最值钱的公司,阿里巴巴只用了20年。 阿里云RPA,201...

阿里云官方博客
37分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部