有了模型以后,我们就可以利用它去操纵数据表了 ... 可以查询,创建,更新,还有删除数据记录 ...
之前我们在使用 DB 类查询数据表的时候,先要使用 table 方法去指定一个数据表的名称 ... 然后可以利用 Query Builder 的方法去操作。
在 MovieController 里的这个 index 方法里,先注释掉这里面的几行代码 ...
这回我们直接使用模型去执行查询 ... 比如要找出 movies 表里面的所有的记录 ...
直接使用模型的名称 ... Movie ... 然后使用 all 这个方法,可以得到所有的记录 .. 给这个结果起个名字 ... 再使用 print_r 或者 var_dump ,把它输出到屏幕上看一下 ...
$data = Movie::all();
print_r($data);
回到浏览器 ... 这里会显示出所有在 movies 表里面的记录。
find
如果想查询出个别记录,可以使用 find 方法 ... 比如找出 movie_id 是 1 的数据记录 ... 使用 Movie 模型的 find 方法 .. 在方法里,可以指定一个 id 参数 ... 这里应该就是 moives 表里面的 movie_id 这个字段的值。因为在创建这个模型的时候,我们的设置了一下它的 $primaryKey 属性的值就是 movie_id ...
$data = Movie::find(1);
(#浏览器)这里会显示一个 movie_id 是 1 的数据记录。(#返回)再去查询出 movie_id 是 3 的电影内容 ... (#浏览器)这次给我们的结果就是 movie_id 是 3 的数据记录。
QueryBuilder
我们同样可以使用上一章里介绍的 QueryBuilder 去创建查询 .. 比如选择要显示的字段,可以使用一个 select 方法 ... 我们想在结果里只包含 电影标题,还有制作成本这两个字段 ... movie_title .. movie_budget ... 最后再使用一个 get 方法,去得到数据。
$data = Movie::select('movie_title', 'movie_budget')->get();
(#浏览器)你会看到,所有结果里面,只包含 movie_title 还有 movie_budget 字段 ...
你也可以试一下其它的方法,比如用 where 去设置条件,用 take 去限制结果数量等等 ...
改造
(#切换)如果用模型的方法改造一下这个显示电影内容的方法 ... $movies 等于 .. 直接使用 Movie 这个模型 ... 再使用它的 all 方法,这样可以得到所有的数据 ..
再把这个 $movies 传递给视图 .. 视图里面用来列出内容的循环可以不用改 ...
注释掉这里的测试模型的代码 ...
保存 ... 回到浏览器 ... 打开 /movies 这个地址 ...
在这里,同样可以显示出电影列表 ...