美文网首页数据库
Eloquent ORM 模型

Eloquent ORM 模型

作者: DragonRat | 来源:发表于2018-08-22 13:40 被阅读0次

    文档: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的代码

    相关文章

      网友评论

        本文标题:Eloquent ORM 模型

        本文链接:https://www.haomeiwen.com/subject/mplsiftx.html