「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PATCHリクエストメソッドを使用したノートの編集と更新

PATCHリクエストメソッドを使用したノートの編集と更新

2024 年 8 月 19 日に公開
ブラウズ:163

Editing and Updating Notes using PATCH Request Method

フォームとリクエスト メソッドを使用した新しいメモの作成のフォローアップとして、PATCH リクエスト メソッドを使用してデータベース内の既存のメモを編集および更新する方法を検討します。

ユーザーがメモを編集したい場合、編集画面にアクセスする方法を提供する必要があります。ここで編集ボタンの出番です。

編集ボタンの追加

まず、ファイルから削除ボタンのコードを削除して、show.view.php の単一ノート画面のノートの下に編集ボタンを追加する必要があります。このボタンは編集画面に移動します。


ノート表示ページのフッター部分に編集ボタンを配置しています。クリックすると、ユーザーは編集画面にリダイレクトされ、URL のパラメータとしてノート ID が渡されます。

メモの編集

edit.php ファイルは編集プロセスを制御します。データベースからメモを取得し、ユーザーにメモを編集する権限を与えます。ユーザーが権限を持っている場合は、編集画面が表示され、ユーザーはメモを変更できます。

query('select * from notes where id = :id', [
    'id' => $_GET['id']
])->findOrFail();

authorize($note['user_id'] === $currentUserId);

view("notes/edit.view.php", [
    'heading' => 'Edit Note',
    'errors' => [],
    'note' => $note
]);

edit.php ファイルは、Database クラスを使用してデータベースからメモを取得します。次に、user_id と currentuserID を比較して、ユーザーがメモを編集する権限を持っているかどうかを確認します。許可されると編集画面が表示されます。

ノートビューの編集

edit.view.php ファイルには、[更新] と [キャンセル] の 2 つのボタンを備えた編集用のノート本文を表示するコードが含まれています。

  • 更新ボタン: 更新されたメモをサーバーに送信し、データベースに保存します

  • キャンセル ボタン: 編集プロセスをキャンセルし、ユーザーをメモ画面にリダイレクトします。


= $errors['body'] ?>

Cancel

ノート編集ビューではテキストエリアにノート本文が表示され、ユーザーは変更を加えることができます。更新ボタンは、更新されたメモをサーバーに送信し、データベースに保存します。

ノートの更新

メモを更新するには、メモの検証とユーザーの承認をチェックする update.php という名前の新しいファイルを作成する必要があります。このファイルでは、承認されたユーザーのみが、データベースにすでに存在するメモの表示と編集を許可されます。

query('select * from notes where id = :id', [
    'id' => $_POST['id']
])->findOrFail();

// Check authorization
authorize($note['user_id'] === $currentUserId);

// Check validation
$errors = [];
if (!Validator::string($_POST['body'], 1, 100000)) {
    $errors['body'] = 'A body of no more than 1,000 characters is required.';
}

// if no validation errors, then update
if (count($errors)) {
    return view('notes/edit.view.php', [
        'heading' => 'Edit Note',
        'errors' => $errors,
        'note' => $note
    ]);
}

$db->query('update notes set body = :body where id = :id', [
    'id' => $_POST['id'],
    'body' => $_POST['body']
]);

// redirect the user
header('location: /notes');
die();

ルートの追加

メモの編集と更新を有効にするには、route.php に次のルートを追加する必要があります:

$router->get('/note/edit', 'controllers/notes/edit.php');
$router->patch('/note', 'controllers/notes/update.php');

これらのルートにより、PATCH リクエスト メソッドを使用したノートの編集と更新が可能になります。

仕組み

ユーザーがメモを編集したい場合、ユーザーは編集画面に移動し、そこでメモを変更できます。ユーザーが変更を送信すると、update.php ファイルが呼び出されます。このファイルは、ユーザーがメモを編集する権限を持っているかどうか、またメモの検証が正しいかどうかをチェックします。両方のチェックに合格すると、データベース内のメモが更新され、ユーザーはメモ画面にリダイレクトされます。いずれかのチェックが失敗した場合、ユーザーはエラー メッセージとともに編集画面にリダイレクトされます。

これらの手順に従うことで、ユーザーは PATCH リクエスト メソッドを使用してメモを簡単に編集および更新できます。

しっかりと理解していただけたと思います。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/ghulam_mujtaba_247/editing-and-updating-notes-using-patch-request-method-14k7?1 侵害がある場合は、削除するために[email protected]に連絡してください。それ
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3