数据库

Eloquent ORM 模型

2018-08-22  本文已影响0人  DragonRat

文档:http://laravelacademy.org/post/2995.html

ORM的思想

使用纯面向对象的方式进行数据操作

  1. PHP编写的类 ==== 库.表
  2. 类里面存在属性 ===== 表.字段
  3. 类的实例 ===== 表.记录
  4. 类的实例方法 ==== 表的操作

laravel-admin脚手架

生成model,controller,数据迁移如下图:

Model文件定义属性:

通过上面的操作,我们生成了模型文件,但是需要要正式的使用模型,则必须要定义一些属性。主要有如下四个属性。

  1. $table 表名,注意:在laravel里面表名建议是模型名称的复数,如果不是,则需要自己手工的指定

  2. $primaryKey 主键id,注意:如果表的主键名称不是叫做 id 则我们需要手工指定

  3. $fillable 可填充的字段,注意:到时候使用模型的 create 方法做批量填充的时候,必须指定可以填充的字段,不然无法正常填充

  4. $timestamps 代表让laravel自动维护 updated_at 和 created_at,注意,它的值为 boolean 如果是 false 代表关闭laravel自动管理机制。true 代表laravel自动维护这两个字段

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Video extends Model
{
    // 定义四个属性
    public $table = 'videos';
    public $primaryKey = 'id';
    public $fillable = ['title', 'author', 'pic', 'path', 'click', 'status'];
    public $timestamps = false;
}

curd操作

可以使用模型对象增加数据 或者 使用模型类进行批量赋值

laravel控制器自动生成增删改查操作,并且连前端UI都不用管;如下图

不过为了演示:在这里介绍源生代码和tinker的使用

增加数据
语法:

  1. 实例化模型,得到模型对象
    $articleModel = new App\Http\Models\ArticleModel();

  2. 为模型对象的属性赋值(属性就是表中字段)
    $articleModel ->title = '指定标题赋值';
    $articleModel ->body= '指定内容赋值';

  3. 调用模型对象的 save() 方法进行保存
    $articleModel->save();

代码如下:
定义路由

tinker操作
主要是为了方便用户进行调试,不然总是使用var_dump dd print_r 或者使用 xdebug进行调试)提供了一个命令行的交互界面,可以书写PHP的代码

上一篇下一篇

猜你喜欢

热点阅读