1. //模型中的相关代码
  1. namespace App;
  2.  
  3. use Illuminate\Database\Eloquent\Model;
  4.  
  5. class Student extends Model{
    //默认对应的是模型复数,即students,如果不是,需要自己指定表名
    protected $table = 'student';//指定表名
  6.  
  7. //默认主键是id,如果不是,需要指定
    protected $primaryKey = 'id';
  8.  
  9. //自动维护时间戳
    public $timestamps = true;
  10.  
  11. protected function getDateFormat()
    {
    return time();
    }
  12.  
  13. //不格式化时间戳
    protected function asDateTime($val)
    {
    return $val;
    }
  14.  
  15. //指定允许批量赋值的字段
    protected $fillable = ['name','age'];
  16.  
  17. //指定不允许批量赋值的字段
    protected $guarded = ['name','age'];
  18.  
  19. }
  1.  
  2. //控制器的相关代码
    //orm 使用模型查询
    public function orm1(){
  3.  
  4. //all().返回模型的对象
    $student = Student::all();
  5.  
  6. //find()
    $student = Student::find(100);
  7.  
  8. //findOrFail(),查找不到就报错
    $student = Student::findOrFail(100);
  9.  
  10. //get()
    $student = Student::get();
  11.  
  12. //first()
    $student = Student::where('id','>',10)
    ->orderBy('age','desc')
    ->first();
    }
  13.  
  1. //orm 使用模型查询
    public function orm2(){
    //使用模型新增数据
    $student = new Student();
    $student->name = 'hello';
    $student->age = 'hello';
    $bool = $student->save();
    var_dump($bool);
  2.  
  3. //格式化日期
    $student = Student::find(1);
    echo date('Y-m-d H:i:s',$student->addtime);
  4.  
  5. //使用模型的create方法新增数据,
    $student = Student::create(['name'=>'haha','age'=>10]);
  6.  
  7. //firstOrCreate,先查找,若没有则新增
    $student = Student::firstOrCreate(['name'=>'haha']);
  8.  
  9. //firstOrNew,先查找,若没有则返回实例,需要自行调用save新增
    $student = Student::firstOrNew(['name'=>'haha']);
    $bool = $student->save();
  10.  
  11. //通过模型更新数据
    $student = Student::find(10);
    $student->name = 'happy';
    $bool = $student->save();
    var_dump($bool);
  12.  
  13. //批量更新,返回行数
    $num = Student::where('id','>',10)->update(
    ['age'=>20]
    );
    var_dump($num);
  14.  
  15. //通过模型删除,不存在会报错
    $student = Student::find(10);
    $bool = $student->delete();
    var_dump($bool);
  16.  
  17. //通过主键删除
    $num=Student::destroy(10);
    var_dump($num);
    $num=Student::destroy([10,11,20]);
    var_dump($num);
  18.  
  19. $num=Student::where('id','>',20)->delete();
    var_dump($num);
  20.  
  21. }
  1.  

Laravel 数据库操作之Eloquent ORM模型的更多相关文章

  1. Laravel—数据库操作与Eloquent模型使用总结

    数据库操作 执行原生SQL //查询 $emp = DB::select('select * from employees where emp_no = 1'); $emp = DB::select( ...

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

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

  3. Laravel 数据库操作 Eloquent ORM

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

  4. laravel 5.1 使用Eloquent ORM 操作实例

    Laravel 的 Eloquent ORM 提供了更优雅的ActiveRecord 实现来和数据库的互动. 每个数据库表对应一个模型文件. 数据库配置 .env文件(也可以直接修改config/da ...

  5. PHP数据库操作:使用ORM

    之前我发了一篇博文PHP数据库操作:从MySQL原生API到PDO,向大家展示PHP是如何使用MySQL原生API.MySQLi面向过程.MySQLi面向对象.PDO操作MySQL数据库的.本文介绍如 ...

  6. [ Laravel 5.6 文档 ]laravel数据库操作分页(自定义分页实现和自定义分页样式)

    简介 在其他框架中,分页可能是件非常痛苦的事,Laravel 让这件事变得简单.易于上手.Laravel 的分页器与查询构建器和 Eloquent ORM 集成在一起,并开箱提供方便的.易于使用的.基 ...

  7. ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )

    //TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: publ ...

  8. ThinkPHP 数据库操作之数据表模型和基础模型 ( Model )

    一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: public function te ...

  9. laravel 数据库操作

    1 配置信息 1.1配置目录: config/database.php 1.2配置多个数据库 //默认的数据库 'mysql' => [ 'driver' => 'mysql', 'hos ...

随机推荐

  1. 理解Vue

    Vue.js是JavaScript MVVM(Model-View-ViewModel)库,十分简洁,Vue核心只关注视图层,相对AngularJS提供更加简洁.易于理解的API.Vue尽可能通过简单 ...

  2. java在线聊天项目0.5版 解决客户端向服务器端发送信息时只能发送一次问题 OutputStreamWriter DataOutputStream socket.getOutputStream()

    没有解决问题之前客户端代码: package com.swift; import java.awt.BorderLayout; import java.awt.Color; import java.a ...

  3. ios xmpp demo

    为了方便程序调用,我们把XMPP的一些主要方法写在AppDelegate中 在AppDelegate.m下这几个方法为: [java] view plaincopy -(void)setupStrea ...

  4. HTML5 FormData 模拟表单控件 支持异步上传二进制文件 移动端

    FormData是XMLHttpRequest Level 2添加的一个新的接口,利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,还可以使用XMLHttpR ...

  5. 【OS_Linux】三大文本处理工具之grep命令

    grep(global search regular expression(RE) and print out the line,整行搜索并打印匹配成功的行 语法:grep  [选项]   搜索词  ...

  6. C/SV/VERILOG语句块界定符不一样

    C是一对大括号{} SV /VERILOG 是begin...end

  7. PAT Basic 1061

    1061 判断题 判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分. 输入格式: 输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量 ...

  8. 【29】html5新标签有哪些?

    [29]html5新标签有哪些? canvas svg video audio [01]article(IE8不支持) [01]details [02]aside(IE8不支持) [03]header ...

  9. Matplotlib基本图形之饼状图

    Matplotlib基本图形之饼状图 饼状图特点: 饼状图显示一个数据系列中各项大小与各项总和的比例饼状图的数据点显示为整个饼状图的百分比 示例代码 import os import time imp ...

  10. 【工具】Homebrew的安装及使用

    Homebrew官网:http://brew.sh/index_zh-cn.html Homebrew是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,相当于linux下的a ...