Eloquent ORM 模型
文档:http://laravelacademy.org/post/2995.html
ORM的思想
使用纯面向对象的方式进行数据操作
- PHP编写的类 ==== 库.表
- 类里面存在属性 ===== 表.字段
- 类的实例 ===== 表.记录
- 类的实例方法 ==== 表的操作
laravel-admin脚手架
生成model,controller,数据迁移如下图:
Model文件定义属性:
通过上面的操作,我们生成了模型文件,但是需要要正式的使用模型,则必须要定义一些属性。主要有如下四个属性。
-
$table 表名,注意:在laravel里面表名建议是模型名称的复数,如果不是,则需要自己手工的指定
-
$primaryKey 主键id,注意:如果表的主键名称不是叫做 id 则我们需要手工指定
-
$fillable 可填充的字段,注意:到时候使用模型的 create 方法做批量填充的时候,必须指定可以填充的字段,不然无法正常填充
-
$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的使用
增加数据
语法:
-
实例化模型,得到模型对象
$articleModel = new App\Http\Models\ArticleModel(); -
为模型对象的属性赋值(属性就是表中字段)
$articleModel ->title = '指定标题赋值';
$articleModel ->body= '指定内容赋值'; -
调用模型对象的 save() 方法进行保存
$articleModel->save();
代码如下:
定义路由
tinker操作
主要是为了方便用户进行调试,不然总是使用var_dump dd print_r 或者使用 xdebug进行调试)提供了一个命令行的交互界面,可以书写PHP的代码