Laravel ORM 数据model操作教程

随机查询

$data=Move::where('release',1)
->where('is_hot',1)
->where('is_status',1)
->orderBy(\DB::raw('RAND()'))
->take(4)
->get();

1.ORM操作需要创建对应的model

class User extends Eloquent

2.有两种方式使用数据操作对象

a. 使用new关键字创建对象后执行对象的方法

b. 直接调用static方法(实际并发静态方法,而是fascade生成的)

3.常用数据操作

a. User::find(1) 查找单条数据

b. User::all() 查找所有数据

c. User::find(1)->delete() 删除单条数据

d. User::destory(array(1,2,3)) 删除单条或多条数据

e. User::save() 保存数据

f. User::first() 取第一条数据

g. Album::where('artist', '=', 'Matt Nathanson') ->update(array('artist' => 'Dayle Rees')); 指定查询条件,更新数据

h. User::truncate() 清空数据表,危险操作

i. Album::where('artist', '=', 'Something Corporate')->get(array('id','title')); 配合查询条件获取多条数据

j. Album::pluck('artist'); 返回表中该字段的第一条记录

k. Album::lists('artist'); 返回一列数据

l. Album::where('artist', '=', 'Something Corporate')->toSql(); 获取查询的sql语句,仅用于条件,不能用户带get()之类的带查询结果的查询中

注:直接使用return 查询结果为json格式的数据

这里使用的User为model名称

条件查询:

1. 最普通的条件查询 User::where('字段名','查询字符','限制条件') 例:Album::where('title', 'LIKE', '...%')

2. 多条件查询,使用多个where Album::where('title', 'LIKE', '...%')->where('artist', '=', 'Say Anything')->get();

3. 或查询操作使用orWhere(),使用方法通where

4.直接用sql语句写查询条件 Album::whereRaw('artist = ? and title LIKE ?', array('Say Anything', '...%'))

5. 其他查询方法

whereIn(),whereBetween(),whereNested()子查询,orWhereNested(),whereNotIn(),whereNull(),whereNotNull()

6. 快捷方式 whereUsername('king') 查询'username' = 'king'的数据,默认系统无此方法,username为字段名称

结果排序:

使用order关键字:

Album::where('artist', '=', 'Matt Nathanson')->orderBy('year')->get(); 默认asc
orderBy('year', 'desc')

限制结果数量

take()方法
Album::take(2)->get();       //select * from `albums` limit 2

指定偏移

Album::take(2)->skip(2)->get();  //select * from `albums` limit 2 offset 2
whereRaw($where)->skip($limit)->take($pageSize)->get();

以上这篇Laravel ORM 数据model操作教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • laravel orm 关联条件查询代码

    如下所示: public function a() { return $this->belongsTo('App\Models\a', 'aid'); } $model = $this->whereHas('a', function ($query) use ($search) { $query->where('username', 'like', '%' . $search['username'] . '%'); })->with(['a:id,username'])->g

  • Laravel实现搜索的时候分页并携带参数

    筛选分页每页的条数: <select class="form-control" id="perPage" name="perPage"> @foreach ( [10,20,30,50] as $e) <option value="{{$e}}" {{ $e==request('perPage') ? 'selected' : '' }} >{{$e}}</option> @endforea

  • Laravel Eloquent ORM 多条件查询的例子

    一.需求: 在数据搜索时最常见的就是调用同一个方法查询,而查询的字段却可能是其中一个或其中的几个字段一起组合查询,例如:对列表的搜索,基本上都是几个字段随意组合搜索.那么在model里就需要判断有那个字段组合,怎么组合. 网上找了很久,Laravel群里也问了几个,都说没有写过,于是自己写个吧.话不多说,见代码: function findByParam($param = array()) { $select = new Customer(); if (isset($param['name'])

  • Laravel Eloquent ORM 实现查询表中指定的字段

    在使用Laravel ORM的Model方法find, get, first方法获取数据对象时返回的数据对象的attributes属性数组里会包含数据表中所有的字段对应的键值关系, 那么如何在ORM查询时只返回数据表中指定字段的数据呢?很多时候,文档上没有写明的用法需要我们去看源码来探究的,下面我们就来看一下这三个方法的实现. 由于ORM依赖了QueryBuilder来实现查询, 在QueryBuilder的源码里通过查看get,first方法的实现可以到,他们都可以接收一个数组参数来指定要查询

  • Laravel实现ORM带条件搜索分页

    Laravel条件搜索一般使用where方法,如下: 查询构造器: $users = DB::table('users')->where('votes', '=', 100)->get(); 或者ORM: $users = User::where('votes', '=', 100)->all(); 当有多个条件时,可以多次调用where方法: $articles = Article::where('id','>','10')->where('is_auth','=','1'

  • Laravel ORM 数据model操作教程

    随机查询 $data=Move::where('release',1) ->where('is_hot',1) ->where('is_status',1) ->orderBy(\DB::raw('RAND()')) ->take(4) ->get(); 1.ORM操作需要创建对应的model class User extends Eloquent 2.有两种方式使用数据操作对象 a. 使用new关键字创建对象后执行对象的方法 b. 直接调用static方法(实际并发静态方法

  • Laravel ORM对Model::find方法进行缓存示例详解

    前言 前段时间做项目时候,想要在不改变方法签名的情况下,给 Model::find 方法做个缓存.而且想要做到即插即用.下面话不多说了,来一起看看详细的介绍哦. 1.先看一下当我们调用 find 方法时,框架干了什么? 找到 Illuminate\Database\Eloquent\Model 的代码,搜索 find,没有该方法.看来是走了 __callStatic 这个魔术方法.该方法里只有一行代码: return (new static)->$method(...$parameters);

  • Laravel框架实现model层的增删改查(CURD)操作示例

    本文实例讲述了Laravel框架实现model层的增删改查(CURD)操作.分享给大家供大家参考,具体如下: protected $table = 'user_city'; public $timestamps = false; //添加 返回id public function cityadd($data) { return $this->insertGetId($data); } //单条查找 public function getfind($id) { if($this->where('

  • 编写Python的web框架中的Model的教程

    有了ORM,我们就可以把Web App需要的3个表用Model表示出来: import time, uuid from transwarp.db import next_id from transwarp.orm import Model, StringField, BooleanField, FloatField, TextField class User(Model): __table__ = 'users' id = StringField(primary_key=True, defaul

  • Django视图之ORM数据库查询操作API的实例

    查询表记录 查询相关API 操作:models.表名.objects.方法() <BR>all(): 查询所有结果 filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个, 如果符合筛选条件的对象超过一个或者没有都会抛出错误. exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 values(*field): 返回一个ValueQuerySet--一个特殊的QuerySet

  • Yii2框架数据验证操作实例详解

    本文实例讲述了Yii2框架数据验证操作.分享给大家供大家参考,具体如下: 一.场景 什么情况下需要使用场景呢?当一个模型需要在不同情境中使用时,若不同情境下需要的数据表字段和数据验证规则有所不同,则需要定义多个场景来区分不同使用情境.例如,用户注册的时候需要填写email,登录的时候则不需要,这时就需要定义两个不同场景加以区分. 默认情况下模型的场景是由rules()方法申明的验证规则中使用到的场景决定的,也可以通过覆盖scenarios()方法来更具体地定义模型的所有场景,例如: public

  • Laravel 实现数据软删除功能

    对于任何一个模型,如果需要使用软删除功能,需要在模型中使用 Illuminate\Database\Eloquent\SoftDeletes 这个  trait .软删除功能需要实现的功能有以下几点: 1.模型执行删除操作,只标记删除,不执行真正的数据删除 2.查询的时候自动过滤已经标记为删除的数据 3.可以设置是否查询已删除的数据,可以设置只查询已删除的数据 4.已删除数据可以恢复 Model的软删除功能实现 Illuminate\Database\Eloquent\Model 中delete

  • thinkphp5 模型实例化获得数据对象的教程

    模型对象和数据对象理解 1. 模型对象:模型类实例化后获得的对象: 2. 数据对象:获取到了原始数据的模型对象: 原始数据:存放在模型对象的$data属性中($data是一个数组) 数据对象:说到底,还是一个模型对象,千万不要认为是一个全新的对象 DB操作返回是数组. 模型直接操作返回是对象. //该对象共计有28个受保护属性,必须在本类或子类中使用,外部不能直接使用 object(app\index\model\Staff)#5 (28) { //数据库配置数组 ["connection&qu

  • Python的轻量级ORM框架peewee使用教程

    ORM框架使用最广泛的就是SQLAlchemy和Django自带的ORM框架,但是SQLAlchemy的语法显然相对Django的ORM框架麻烦一点. 而Django本身是一个web框架,比较重量级,仅仅为了使用Django的ORM框架的功能,而安装Django有点导致系统臃肿.而peewee这个框架语法几乎与Django的ORM框架一致,而又非常轻量. 它的安装非常简单: pip install peewee 如果你在使用mysql数据库的过程中报出如下错误: peewee.Improperl

  • Django基础之Model操作步骤(介绍)

    一.数据库操作 1.创建model表 基本结构: #coding:Utf8 from django.db import models class userinfo(models.Model): #如果没有models.AutoField,默认会创建一个id的自增列 name = models.CharField(max_length=30) email = models.EmailField() memo = models.TextField() 字段解释: 1.models.AutoField

随机推荐