最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • 使用 PATCH 请求方法编辑和更新注释

    使用 patch 请求方法编辑和更新注释

    作为使用表单和请求方法创建新笔记的后续内容,我们现在将探索如何使用 PATCH 请求方法编辑和更新数据库中的现有笔记。

    当用户想要编辑笔记时,我们需要提供一种访问编辑屏幕的方式。这就是编辑按钮的用武之地。

    添加编辑按钮

    首先,我们需要通过从文件中删除删除按钮代码,在 show.view.php 中的单个注释屏幕上的注释下方添加一个编辑按钮。此按钮会将用户移至编辑屏幕。

    <footer class="mt-6"><a href="https://www.codesou.cn/" 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><?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.codesou.cn/" 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('位置:/笔记');
    死();
    

    添加路线

    为了实现笔记的编辑和更新,我们需要在route.php中添加以下路由:

    $router->get('/note/edit', 'controllershttps://www.codesou.cn/link/697782646a61d39ff18134e51fe7db85/edit.php');
    $router->patch('/note', 'controllershttps://www.codesou.cn/link/697782646a61d39ff18134e51fe7db85/update.php');
    

    这些路由将允许使用 PATCH 请求方法编辑和更新注释。

    怎么运行的

    当用户想要编辑注释时,用户将被带到编辑屏幕,用户可以在其中对注释进行更改。当用户提交更改时,将调用 update.php 文件。该文件将检查用户是否有权编辑注释以及注释的验证是否正确。如果两项检查都通过,则注释将在数据库中更新,并且用户将被重定向回注释屏幕。如果任一检查失败,用户将被重定向回编辑屏幕并显示错误消息。

    通过执行以下步骤,用户可以使用 PATCH 请求方法轻松编辑和更新注释。

    希望您已经清楚地理解了。

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » 使用 PATCH 请求方法编辑和更新注释
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情