有了模型以后,再插入新的数据记录到数据表里面,可以先去创建一个模型的实例,然后去设置这个实例的属性还有跟它对应的值,这个属性就是数据表里面的字段,它的值就是要往这个字段里面存储的内容。最后,再调用模型的 save 方法,去保存一下。
先打开 MovieController ,找到处理存储请求的这个 store 方法 ...
在这个方法里,先去获得用户填写的表单里面的内容,然后使用 DB 类的 table 方法指定数据表,再用 insert 方法把这些内容插入到数据库里。我们可以先注释掉 DB::table 这几行代码 ,... 然后使用模型的方法去改造一下它。
首先要去创建一个模型的实例,这里我们要创建实例的模型是 Movie ... $movie 等于 new Movie;
这个 $movie 就是基于 Movie 模型创建的一个对象 ... 里面会包含一些属性 ... 这些属性就是跟 movies 数据表里面的字段对应的 ... 然后我们要去根据用户在表单里填写的内容去设置一下这些属性的值 ...
$movie 一个箭头符号 ... 接着是属性的名称 .. . movie_title ... 电影的标题... 跟它对应的值,在上面已经使用 Input 类的 get 方法获取到了 ... 在这个 $movie_title 变量里面 ...
再去设置一下 movie_date ... 还有 movie_budget 属性里面的值 ...
$movie->movie_title = $movie_title;
$movie->movie_date = $movie_date;
$movie->movie_budget = $movie_budget;
最后,再去调用一下 save 方法,去把这些内容存储到数据表里面 ..
$movie->save();
测试
下面,我们去测试一下 .. 打开创建电影的页面 ... movies/create
输入电影标题 ... 制作成本 ... 还有上映日期 ...
然后点击 发布 ...
返回到电影内容列表页面 .... 在这里,可以找到刚才我们新添加的电影 ...
下面,我们打开数据库管理软件,去看一下刚才插入的这行数据 ... 这里我用的是 Sequel Pro ... 你也可以使用 phpmyadmin ...
找到应用的数据库 ... movies 表 ....
时间戳
这个 movie_id 是 xx 的记录就是刚才我们使用模型的方法插入的一条记录 ... 注意,它的 created_at 还有 updated_at 字段里面自动加上了时间 戳 ...
Eloquent 会认为在我们的数据表里,有这两个字段 ... 然后自动去设置它的值 ...
如果不想使用自动时间戳的功能 ... 可以在模型里面,把 timestamps 这个属性的值 ... 设置成 false ...
public $timestamps = false;