laravel的 Eloquent 模型其实就是我们平时说的MVC里Model,只是换了个名字而已~

1)Eloquent 是啥?

Eloquent 本质就一个查询构建器(laravel里叫查询构建器,想上面所说的一样,它其实就是一个Model),所以它使用查询构建器的所以方法,

如果你不知道laravel查询构建器都有些什么方法,看这里:http://www.cnblogs.com/tujia/p/6292832.html

2)Eloquent 怎么用?

1、创建一个Eloquent 模型(生成的model方法位于app目录下)

php artisan make:model Goods

2、指定一下Model绑定的数据表及表主键(如果不声明表名及主键,默认的表名是model名字的复数,例如我这里的话,默认表名就成了Goodss了,默认主键是id

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Goods extends Model
{
protected $table = "goods";
protected $primaryKey = "goods_id";
//
}

3、数据库操作的话,这按之前的查询构建器的写法来就行了,不过这里不再是用的 DB::table('table_name') 了,直接用$this就行了,例如:

$goods = $this->where('goods_id', '1')->first();

当然,这时在Model里方法的写法,在别的地方(例如控制器)调用Model的话,要实例化一个模型来调用

$goods = \App\Goods::where('goods_id', '1')->first();

如果我们需要通过模型查询多次的话,先实例化一个模型并赋值给一个变量是一个不错的选择

$goodsModel = new \App\Goods();
$row = $goodsModel->where('goods_id', $id)->first();
$count = $goodsModel->count();

3)Eloquent 模型特有的方法

Eloquent 除了具备 “查询构建器” 的所有功能(方法),它还自己的一些“更强大”的方法(DB::table不能使用的方法)

1、find 方法,find 方法可以查询一行或多行

$goodsModel = \App\Goods();
$one = $goodsModel->find(1);
$some = $goodsModel->find([1,2,3,4]);

2、save 方法,save 方法具备 insert 方法和 update 方法的功能(记录不存在时insert,记录存在时update)

$model->save(
['email' => 'john@example.com', 'votes' => 0]
); $model->save(
['id'=>1,'email' => 'john@example.com', 'votes' => 0]
);

更新时,需要提示数据表的主键字段,例如上面的id字段

PS:如果你在做数据迁移时,有设置到 $table->timestamps(),生成数据表时会有一个 created_at 字段 和 updated_at 字段,而使用save方法插入或更新记录时,这两个字段会被自动更新(使用insert和update方法没这种效果)

待续。。

laravel Eloquent 模型(也就是我本时说的Model)的更多相关文章

  1. 判断Laravel Eloquent获取数据结果集是否为空

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

  2. Laravel Eloquent 判断取出的结果集是否为空

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

  3. laravel Eloquent 查询数据库判断获取的内容是否为空

    原文地址:https://www.cnblogs.com/love-snow/articles/7205338.html 在使用 Laravel Eloquent 模型时,我们要判断取出的结果集是否为 ...

  4. 使用laravel的Eloquent模型获取数据库的指定列

    使用laravel的Eloquent模型获取数据库的指定列   使用Laravel的ORM——Eloquent时,时常遇到的一个操作是取模型中的其中一些属性,对应的就是在数据库中取表的特定列. 如果使 ...

  5. 【laravel】Eloquent 模型事件和监听方式

    所有支持的模型事件 在 Eloquent 模型类上进行查询.插入.更新.删除操作时,会触发相应的模型事件,不管你有没有监听它们.这些事件包括: retrieved 获取到模型实例后触发 creatin ...

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

    Eloquent是什么 Eloquent 是一个 ORM,全称为 Object Relational Mapping,翻译为 "对象关系映射"(如果只把它当成 Database A ...

  7. Laravel笔记--Eloquent 模型

    Eloquent 模型 默认继承use Illuminate\Database\Eloquent\Model类. 数据表名称与模型名称约定: 数据库的表名一般使用“蛇形命名法”命名.蛇形命名法要求单词 ...

  8. Laravel Eloquent ORM 时如何查询表中指定的字段

    导读:在使用Laravel ORM的Model方法find, get, first方法获取数据对象时返回的数据对象的attributes属性数组里会包含数据表中所有的字段对应...原文地址:http: ...

  9. 【Laravel】为Eloquent 模型设置全局作用域和局部作用域进行查询

    全局作用域 所谓「全局作用域」,指的是预置过滤器在注册该「全局作用域」的模型类的所有查询中生效,不需要指定任何额外条件. 以 User 模型类为例,我们在系统中可能只想针对已经验证过邮箱的用户进行操作 ...

随机推荐

  1. js修改input的type属性问题(兼容所有浏览器,主要用于密码类的默认有提示文字的效果)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  2. Linux模块的加载和卸载

    Linux操作系统中模块操作相关命令解释lsmod  查看已经安装好的模块, 也可以查看/proc/modules文件的内容. 实际上,lsmod读命令就是通过查看/proc/modules的内容来显 ...

  3. phalcon分页的处理

    由于项目是用phalcon做的,主要是处理api,也做些简单的web页面. 有一个页面是显示日志的,结果后来日志达到几万条后php内存爆了,查了一下代码, 居然是直接读出所有数据库数据,使用的\Pha ...

  4. 【C#】使用Json.NET(newtonsoft)解析Json

    最近做的WPF项目中,需要一个C#下的Json实现. 在Json的官网http://www.json.org/中查找,可见C#的Json工具主要有如下: 尝试了排在最前面的fastJSON,反序列化时 ...

  5. java——关于数组的定义 和 访问修饰符的修饰内容

    public class Shuzu { public static void main(String[] args) { // 定义数组 必须初始化长度,没有初始化要放数据 int[] in = { ...

  6. java资料——链表(转)

    链表 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点包括两个 ...

  7. [转]Eclipse下导入外部jar包的3种方式

    我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式.   1.最常用的普通 ...

  8. java- 综合实例-增删查改查,删除多项,分页,令牌机制

    重点内容:分页.令牌机制(重定向下防止重复提交).使用c3p0连接数据库(以及数据库连接类) 项目结构: 类: 项目展示: 数据库: /* SQLyog Ultimate v12.09 (64 bit ...

  9. php BC高精确度函数库

    #两个高精度数比较 #int bccomp ( string $left_operand , string $right_operand [, int $scale ] ) #$left=$right ...

  10. 获取页面中更新删除传过来的id

    利用uri辅助函数 $id=$this->uri->segment(4); 其中segment(参数)  是表示你要截取获得第几个数据.