控制器方法:

//Eloquent ORM的使用:
public function orm1()
{
//all()
/*$students=Student::all();
dd($students);
*/ //find();
/*$student=Student::find(1001);
dd($student);*/ //findOrFail()
/*$student=Student::findOrFail(1008);
dd($student);*/ //查询构造器在ORM中的使用:
/*$students=Student::get();
dd($students);*/ //first()
/*$students=Student::where('id','>','1001')
->orderBy('age','desc')
->first();
dd($students);*/ //chunk()
/*Student::chunk(2,function ($students){
var_dump($students);
});*/ //查询构造器中的聚合函数:
//count
/*$num=Student::count();
var_dump($num);*/ //max()
/*$max=Student::where('id','>',1001)->max('age');
var_dump($max);*/
} //ORM中的新增、自定义时间戳及批量赋值:
public function orm2()
{
//使用模型新增数据:
/*$student = new Student();
$student->name = "笑笑";
$student->age = 22;
$bool =$student->save();
dd($student);*/ /*$student = Student::find(1007);
echo $student->created_at;*/ /*$student = Student::find(1007);
//自己格式化时间戳
echo date('Y-m-d H:i:s', $student->created_at);*/ //使用模型的Create方法新增数据:
/*$student=Student::create(
['name'=>'imooc','age'=>18]
);
var_dump($student);*/ //firstOrCreate() 以属性查找用户,若没有则新增,并取得新的实例:
/*$student= Student::firstOrCreate(
['name'=>'imoocs']
);
dd($student);*/ //firstOrNew()以属性查找用户,若没有则建立新的实例。需要保存的,自己调用save
$student = Student::firstOrNew(
['name' => 'imoocs789']
);
$bool = $student->save();
dd($bool);
} //ORM更新数据:
public function orm3()
{
//通过模型更新数据:( save保存方法不可行)
/*$student = Student::find(1001);
$student->name = 'kitty';
$bool=$student->save();
dd($bool);*/ //结合查询语句,批量更新:
/*$num=Student::where('id','>',1005)->update(
['age'=>41]
);
var_dump($num);*/ } //使用Eloquent ORM删除数据:
public function orm4(){ //通过模型删除数据:
/*$student=Student::find(1008);
$bool=$student->delete();
var_dump($bool);*/ //通过主键删除:
//
/*$num=Student::destroy(1010);*/ //删除两条数据:
/*$num=Student::destroy(1007,1009);*/
/*$num=Student::destroy([1007,1009]);
var_dump($num);*/ //通过条件删除:
/* $num=Student::where('id','>',1004)->delete();
var_dump($num);*/
}

  模型的设置:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Student extends Model
{
//指定表名:
protected $table="student"; //指定id
protected $primaryKey="id"; //指定允许批量的字段:
protected $fillable=['name','age']; //指定不允许批量赋值的字段
protected $guarded=[]; //自动维护时间戳:
public $timestamps=true; //返回当前时间的时间戳,进入数据库,输出时,可以输出格式化好的时间。
protected function getDateFormat()
{
return time();
} //设置他之后,返回的就是数据表中的时间戳了。
protected function asDateTime($value)
{
return $value;
} }

  

laravel5.5种的Eloquent ORM的使用:的更多相关文章

  1. laravel5.5源码笔记(八、Eloquent ORM)

    上一篇写到Eloquent ORM的基类Builder类,这次就来看一下这些方便的ORM方法是如何转换成sql语句运行的. 首先还是进入\vendor\laravel\framework\src\Il ...

  2. Laravel Eloquent ORM

    Eloquent ORM 简介 基本用法 集体赋值 插入.更新.删除 软删除 时间戳 查询范围 关系 查询关系 预先加载 插入相关模型 触发父模型时间戳 与数据透视表工作 集合 访问器和调整器 日期调 ...

  3. [Laravel] 03 - DB facade, Query builder & Eloquent ORM

    连接数据库 一.Outline 三种操作数据库的方式. 二.Facade(外观)模式 Ref: 解读Laravel,看PHP如何实现Facade? Facade本质上是一个“把工作推给别人做的”的类. ...

  4. Eloquent ORM模型中添加自定义值

    我们都知道通过Laravel中数据库查询出来的模型对象都是基于数据库字段,今天给大家展示一个 Laravel Eloquent ORM 模型特性-附加值不存在于数据表中. 举个简单的栗子,一篇文章(p ...

  5. Eloquent ORM笔记

    基本操作 新增 $user = new User; $user->name = 'John'; $user->save(); $insertedId = $user->id;//从对 ...

  6. [转]Laravel 4之Eloquent ORM

    Laravel 4之Eloquent ORM http://dingjiannan.com/2013/laravel-eloquent/ 定义Eloquent模型 模型通常放在app/models目录 ...

  7. Eloquent ORM 学习笔记

    最近在学习Laravel,觉得ORM功能很强大,我这里只是简单探索了一点,如果有更好的笔记,还请分享. 因为重点在于Eloquent ORM,所以路由设置,控制器就不详细描述了,这里直接进入Model ...

  8. Eloquent ORM 之关联查询

    小伙伴们好,本文是在我的前一篇随笔的基础上完成的,还没有浏览的同学,请移尊驾哦 Eloquent ORM学习笔记. 前一篇文章用到了leftJoin方法,其实Eloquent对于模块之间的关联查询有自 ...

  9. Laravel 数据库操作 Eloquent ORM

    laravel 操作数据库一般都使用它的Eloquent ORM才操作 建立模型 <?php namespace App; use Illuminate\Database\Eloquent\Mo ...

随机推荐

  1. 跨域问题-cors

    什么是跨域如大家所知,出于安全考虑,浏览器会限制脚本中发起的跨站请求.比如,使用 XMLHttpRequest 对象发起 HTTP 请求就必须遵守同源策略(same-origin policy). 具 ...

  2. Webpack+React+ES6 最新环境搭建和配置(2017年)

    刚刚学习React,发现React在ES6下的语法才是本体,结合ES6新的语言特性,使组件化开发显得更加直观.而且现在的Angular2也开始使用支持强类型的TypeScript,转译(transpi ...

  3. 前端使用canvas绘制立体三角形

    前端绘制立体效果的三角形的demo 在移动端使用时,需要自适应屏幕.canvas上无法设置rem,所以在canvas外加一个父级元素设置为rem,再将canvas的宽高设置为100% 100%. 如果 ...

  4. JMeter的安装和目录解析

    Ubuntu系统中jmeter的安装和目录解析 作为一个Linux新手,在使用jdk时,或许会安装配置多次仍然导致无法使用情况(如无法登录系统等),请按如下步骤一步一步安装并配置 相关软件下载地址 J ...

  5. node异步流程控制async

    1.串行无关联:async.series(tasks,callback); 多个函数依次执行,之间没有数据交换,其中一个函数出错,后续函数不再执行 async.series({ one: functi ...

  6. 同时执行2条不同sql

    select * from  a: select *from b; 用分号结束.

  7. Jackson 框架JSON、XML、List、Map直接相互转换

    博客分类: json   参考:http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html 在其基础上做了稍微调整 详情见附件 jacks ...

  8. 如何退出minicom【学习笔记】

    一.先按ctr+a进入设置模式 二.在按x退出

  9. [BZOJ4137]火星商店问题

    Description 火星上的一条商业街里按照商店的编号1,2 ,…,n ,依次排列着n个商店.商店里出售的琳琅满目的商品中,每种商品都用一个非负整数val来标价.每个商店每天都有可能进一些新商品, ...

  10. CentOS 7 Fail2ban防暴力破解

    1.安装 yum install epel-release -y yum install fail2ban fail2ban-systemd -y 2.配置 //新建配置 vim /etc/fail2 ...