作为用表单和请求方法创建新笔记的后续内容,我们现在将探索如何使用它们 PATCH 编辑和更新数据库中的现有笔记。
当用户想要编辑笔记时,我们需要提供一种访问编辑屏幕的方式。这就是编辑按钮的地方。
添加编辑按钮第一,我们需要从文件中删除删除按钮代码, show.view.php 在单个注释屏幕上的注释下方添加一个编辑按钮。此按钮将用户移动到编辑屏幕。
<footer class="mt-6"><a href="https://www.php.cn/link/652b724608ede9a918d6bc059579d3579" rel="nofollow" target="_blank">" class="inline-flex justify-center rounded-md border border-transparent bg-gray-500 py-2 px -4 文本-sm 字体-中文-白色阴影-sm 悬停:bg-indigo-700 焦点:outline-none 焦点:ring-2 焦点:ring-indigo-500 焦点:ring-offset-2">编辑一个> 页脚> </a></footer>
编辑按钮位于笔记显示页面的页脚。单击时,将用户重新定向编辑屏幕,并注释 ID 作为 URL 中间的参数传输。
编辑笔记edit.php 文件控制编辑过程。它从数据库中搜索注释,并授权用户编辑注释。如果用户获得授权,将显示编辑屏幕,允许用户更改笔记。
<?php 使用CoreApp; 使用核心数据库; $db = App::resolve(数据库::类); $当前用户ID = 1; $note = $db->query(从笔记中选择*,其中 id = :id', [ 'id' => $_GET['id'] ])->findOrFail(); 授权($note['user_id'] === $currentUserId); (“笔记/视图)edit.view.php”,[ '标题' => 编辑注释, '错误' => [], '注释' => $注释 ]);
edit.php 文件使用 Database 类别从数据库中检索注释。然后,它将通过 user_id 与当前用户 ID 检查用户是否有权编辑注释进行比较。如果获得授权,将显示编辑屏幕。
编辑注释视图edit.view.php 该文件包含显示注释文本编辑的代码,有两个按钮:更新和取消。
更新按钮:将更新的笔记提交给服务器并存储在数据库中
取消按钮:取消编辑过程,并将用户重新定向回到笔记屏幕。
<label for="body" class="block text-sm font-medium text-gray-700">正文</label> <div> <textarea id="body" name="body" rows="3" class="mt-1 块 w-full rounded-md border-gray-300 Shadow-sm focus:border-indigo-500 focus:ring-indigo -500 sm:text-sm" placeholder="这是一个注释的想法...">= $note['body'] ?></textarea><?></textarea><?php if (isset($errors['body'])) : ?><p class="text-red-500 text-xs mt-2">= $errors['body'] ?></p> <?php endif; ?> </div> <div class="bg-gray-50 px-4 py-3 text-right sm:px-6 flex space-x-4 justify-end items-center"> <button type="button" class="text-red-500 mr-auto" onclick="document.querySelector('#delete-form').submit()">删除</button> <a href="https://www.php.cn/link69782666a61d39ff1834e51fe7db8" class="inline-flex justify-center rounded-md border border-transparent bg-gray-500 py-2 px-4 text-sm font-medium text-whiteshadow-sm 悬停:bg -indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">取消</a> <button type="submit" class="inline-flex justify-center rounded-md border border-transparent bg-indigo-600 py-2 px-4 text-sm font-medium text-whiteshadow-sm 悬停:bg- indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">更新</button> </div>
编辑笔记视图显示文本区域中的笔记文本,允许用户更改。更新按钮将更新的笔记提交给服务器并存储在数据库中。
更新笔记为了更新注释,我们需要创建一个名称 update.php 新文件用于验证注释并检查用户的授权。该文件只允许授权用户查看和编辑数据库中现有的注释。
<?php 使用Coreapp; 使用核心数据库; 使用CoreValidator; $db = App::resolve(数据库::类); $当前用户ID = 1; // 找到相应的注释 $note = $db->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(位置:/笔记); 死();
为了编辑和更新笔记,我们需要在routee上.以下路由添加到php中:
$router->get('/note/edit', 'controllershttps://www.php.cn/link6978266a61d39ff1834e51fe7db85edit.php'); $router->patch('/note', 'controllershttps://www.php.cn/link6978266a61d39ff1834e51fe7db85update.php');
允许使用这些路由 PATCH 编辑和更新请求方法的注释。
怎么运行的当用户想要编辑注释时,用户将被带到编辑屏幕上,用户可以更改注释。当用户提交更改时,调用 update.php 文件。本文件将检查用户是否有权编辑注释和验证注释是否正确。如果两项检查都通过,注释将在数据库中更新,用户将被重定向回注释屏幕。若任何检查失败,用户将被重新定向回到编辑屏幕,并显示错误消息。
用户可以通过执行以下步骤使用 PATCH 请求方法易于编辑和更新注释。
我希望你能清楚地理解。
以上就是使用 PATCH 编辑和更新注释的详细内容,请关注其他相关文章!
数据恢复助手泄露,隐私风险触目惊心!
使用 PATCH 编辑和更新请求方法注释-php教程
高效远程掌控,一键直达,智慧软件新选择!
CSS 介绍,什么是 CSS、我们为什么要用? CSS 以及 CSS 如何描述 HTML 元素-css教程
远程桌面无法显示?快速解决教程来袭!
安装备份首选,XX软件领先无忧!
服务器升级中:提升性能,确保稳定运行。
CSS 介绍,什么是 CSS、我们为什么要用? CSS 以及 CSS 如何描述 HTML 元素-css教程
进一步完善造型-css教程
解码对话:深入讨论 JavaScript js教程中的请求和响应对象
HTML Web 存储和 Web 存储对象-css教程
css教程释放下拉菜单的力量
探索 CSS 中的 :has() 选择器-css教程
设计我们的内容-css教程
使用 JavaScript 发送 WhatsApp 新闻-js教程
css教程将网格元素跨度到父级的整个宽度
在 React 构建可重用的列表组件-js教程
认证与授权-js教程
【Linux的历史】:起源于第一种编程语言和第一个操作系统-C