在一个编辑表单上显示要编辑的内容资源 .. 渲染这个表单用的是资源控制器里的 edit 这个方法 .. 在这个方法里可以从数据库里查询出要显示的内容资源,再把它交给编辑资源用的视图 ..
这里现在用的是 query builder 查询出来的数据 .. 先改造一下 .. 添加一个 post .. await .. 用一下 Post 模型上的 findOrFail .. 把资源的 id 交给这个方法,这个 id 是在 params 里面 .. 如果没找到指定 id 的内容,这个方法在没找到指定的数据记录的时候,会抛出一个 ModelNotFoundException ..
这个 post 是个模型,想让视图使用它里面的数据需要转换一下 .. 传递给视图一个 post,对应的值可以用一下 post ,用 toJSON() 这个方法转换一下 ..
回到浏览器 .. 打开一个资源的编辑页面 .. post .. 资源 id ,后面加上一个 edit .. 在这个页面上会在一个表单上显示要编辑的内容 .. 提交这个表单会用资源控制器里的 update 这个方法来处理 .. 回到项目 .. 找到 update 这个方法 ..
现在我们可以用一下模型里的方法来更新一下存储在数据库里的内容 .. 这里先得到了一个 updatedPost ..
下面我们再用模型的方式保存一下内容 .. 先查询出要编辑的内容 .. 添加一个 post .. await Post.findOrFail .. 把资源的 id 交给这个方法 .. 就是这个 params.id
再去更新一下需要更新的内容 .. 返回的这个 post 是个模型,所以我们可以用一下这个 post 模型里的 merge .. 把要更新的内容交给这个方法 .. 这里就是 updatedPost ..
再用一下 post 里的 save,保存一下对数据的修改 ..
回到浏览器 ... 在这个编辑资源用的表单上,修改一下这个内容 ...
然后再提交一下这个修改 ...
完成以后再回到这个内容资源页面查看一下 ...
现在这个页面上就会显示我们修改之后的内容了 .. 这次对数据的修改我们用到了模型里提供的方法 ..
再回到数据库的客户端 .. 检查一下 ..
查看一下 posts 表里的内容 .. 刚才我们更新的是 id 号是 3 的这条数据记录 .. 注意使用模型上的方法更新之后,这个 updated_at 字段里面就会有值了 ...
下面可以再去试一下 .. 比如我要更新一下这个 id 号是 5 的记录 .. 注意现在这条记录的 updated_at 还有 created_at 的值是一样的 ..
回到浏览器 .. 打开id 号是 5 的这个文章资源的编辑页面 .. 修改一下文章的正文 ... 再提交一下 ..
完成以后再回到数据库客户端这里检查一下 ...
注意刚才我们修改的这条数据记录 .. 它的 updated_at 这个字段的值会有变化 ... 没修改之前,它的值跟 created_at 里的值是一样的 ..