接下来是关于laravel真正的数据库封装。
文档
Eloquent ORM
这个是laravel的模型层。laravel团队似乎有意无意地在弱化MVC
这个概念,他们直接将模型文件放在app目录下,当然也允许我们以一定地方式进行自己的组织,因为“每个人对模型都有自己的理解”。(sad。对我这样的初学者来说可能只是帮我把代码写得更乱。)
建立模型
laravel中,一般一个模型对应一张表,一般而言。我们可以用最传统的方法,即在数据库里新建一张数据表后再在app目录下新建模型文件与之关联,也可以使用php artisan make:model User
这样的artisan命令(laravel框架自带)来新建模型文件。
一般而言,一个叫Flight的模型应该是这样的
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Flight extends Model{ // }
它继承自Illuminate\Database\Eloquent\Model
类
关联数据表名
protected $table = 'table_name';
把这个设置好
设置主键
假如你的表格的主键名不是id
那嚰你就需要设置$primaryKey
了
模型的实例
每个模型的实例里,可以按数据表的字段名来存入数据
比如我们现在有一个叫$Flight
的模型实例,那么我们想往里面塞数据的时候,可以这样做
$Flight->name=$value
然后字段名叫name的字段下的数据被更新为$value。之后等待后续的操作。
(以ThinkPHP举例,这相当于create($data)方法)
简单查询
举个栗子
$flights = App\Flight::where('active', 1) ->orderBy('name', 'desc') ->get();
你拿到的数据,可以简单地直接塞给视图
$flights = Flight::all(); return view('flight.index', ['flights' => $flights]);
简单插入
假如我们已经定义了一个叫Flight
的模型
$fight = new Flight;//实例化一个新模型 $Flight->name = $value;//给要插入的字段名赋值 $Flight->save();//执行插入
需要提醒的是,一般而言,laravel建议数据库中有两个叫create_at
和update_at
的整型字段用于存储字段创建和更新时的时间戳。如过你想关闭对它们的赋值的话,可以看最上方的文档。
简单更新
我们需要通过查询获取结果集,对它(们)修改以后再save()
到数据库。详见文档。这个和插入基本一样。
删除
执行查询后delete()
或者直接依据主键进行destroy($primaryKerNum)
。同样也是详见文档。