
作为使用表单和请求方法创建新笔记的后续内容,我们现在将探索如何使用 PATCH 请求方法编辑和更新数据库中的现有笔记。
当用户想要编辑笔记时,我们需要提供一种访问编辑屏幕的方式。这就是编辑按钮的用武之地。
添加编辑按钮
首先,我们需要通过从文件中删除删除按钮代码,在 show.view.php 中的单个注释屏幕上的注释下方添加一个编辑按钮。此按钮会将用户移至编辑屏幕。
编辑按钮位于笔记显示页面的页脚部分。单击时,它将用户重定向到编辑屏幕,并将注释 ID 作为 URL 中的参数传递。
编辑笔记
edit.php 文件控制编辑过程。它从数据库中检索注释并授权用户编辑注释。如果用户获得授权,则会显示编辑屏幕,允许用户对笔记进行更改。
query('从笔记中选择*,其中 id = :id', [ 'id' => $_GET['id']])->findOrFail();授权($note['user_id'] === $currentUserId);视图(“笔记/edit.view.php”,[ '标题' => '编辑注释', '错误' => [], '注释' => $注释]);
edit.php 文件使用 Database 类从数据库中检索注释。然后,它通过将 user_id 与当前用户 ID 进行比较来检查用户是否有权编辑注释。如果获得授权,则会显示编辑屏幕。
编辑注释视图
edit.view.php 文件包含显示注释正文以进行编辑的代码,有两个按钮:更新和取消。
更新按钮:将更新的笔记提交到服务器并存储在数据库中
取消按钮:取消编辑过程并将用户重定向回笔记屏幕。
AI图像编辑器
使用文本提示编辑、变换和增强照片
46 查看详情
编辑笔记视图在文本区域中显示笔记正文,允许用户进行更改。更新按钮将更新的笔记提交到服务器并将其存储在数据库中。
更新笔记
要更新注释,我们需要创建一个名为 update.php 的新文件,用于检查注释的验证并检查用户的授权。该文件仅允许授权用户查看和编辑数据库中已存在的注释。
query('从笔记中选择*,其中 id = :id', [ 'id' => $_POST['id']])->findOrFail();// 检查授权授权($note['user_id'] === $currentUserId);// 检查验证$错误= [];if (!Validator::string($_POST['body'], 1, 100000)) { $errors['body'] = '正文不能超过 1,000 个字符。';}// 如果没有验证错误,则更新if (计数($错误)) { 返回视图('notes/edit.view.php', [ '标题' => '编辑注释', '错误' => $错误, '注释' => $注释 ]);}$db->query('更新注释设置 body = :body where id = :id', [ 'id' => $_POST['id'], 'body' => $_POST['body']]);// 重定向用户header('位置:/笔记');死();
添加路线
为了实现笔记的编辑和更新,我们需要在route.php中添加以下路由:
$router->get('/note/edit', 'controllershttps://www.php.cn/link/697782646a61d39ff18134e51fe7db85/edit.php');$router->patch('/note', 'controllershttps://www.php.cn/link/697782646a61d39ff18134e51fe7db85/update.php');
这些路由将允许使用 PATCH 请求方法编辑和更新注释。
怎么运行的
当用户想要编辑注释时,用户将被带到编辑屏幕,用户可以在其中对注释进行更改。当用户提交更改时,将调用 update.php 文件。该文件将检查用户是否有权编辑注释以及注释的验证是否正确。如果两项检查都通过,则注释将在数据库中更新,并且用户将被重定向回注释屏幕。如果任一检查失败,用户将被重定向回编辑屏幕并显示错误消息。
通过执行以下步骤,用户可以使用 PATCH 请求方法轻松编辑和更新注释。
希望您已经清楚地理解了。
以上就是使用 PATCH 请求方法编辑和更新注释的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/529443.html
微信扫一扫
支付宝扫一扫