Im Anschluss an die Erstellung neuer Notizen mithilfe von Formularen und Anforderungsmethoden werden wir nun untersuchen, wie vorhandene Notizen in der Datenbank mithilfe der PATCH-Anforderungsmethode bearbeitet und aktualisiert werden.
Wenn ein Benutzer eine Notiz bearbeiten möchte, müssen wir ihm eine Möglichkeit bieten, auf den Bearbeitungsbildschirm zuzugreifen. Hier kommt die Schaltfläche „Bearbeiten“ ins Spiel.
Zuerst müssen wir unterhalb der Notiz auf dem Einzelnotizbildschirm in show.view.php eine Schaltfläche zum Bearbeiten hinzufügen, indem wir den Code der Löschschaltfläche aus der Datei entfernen. Mit dieser Schaltfläche gelangen Sie zum Bearbeitungsbildschirm.
<footer class="mt-6"> <a href="/note/edit?id=<?= $note['id'] ?>" class="inline-flex justify-center rounded-md border border-transparent bg-gray-500 py-2 px-4 text-sm font-medium text-white shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">Edit</a> </footer>
Die Schaltfläche „Bearbeiten“ befindet sich im Fußzeilenbereich der Notizanzeigeseite. Wenn darauf geklickt wird, wird der Benutzer zum Bearbeitungsbildschirm weitergeleitet und die Notiz-ID als Parameter in der URL übergeben.
Die Datei edit.php steuert den Bearbeitungsprozess. Es ruft die Notiz aus der Datenbank ab und autorisiert den Benutzer, die Notiz zu bearbeiten. Wenn der Benutzer berechtigt ist, wird der Bearbeitungsbildschirm angezeigt, in dem der Benutzer Änderungen an der Notiz vornehmen kann.
<?php use Core\App; use Core\Database; $db = App::resolve(Database::class); $currentUserId = 1; $note = $db->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 ]);
Die Datei edit.php verwendet die Datenbankklasse, um die Notiz aus der Datenbank abzurufen. Anschließend wird überprüft, ob der Benutzer berechtigt ist, die Notiz zu bearbeiten, indem die Benutzer-ID mit der aktuellen Benutzer-ID verglichen wird. Bei entsprechender Berechtigung wird der Bearbeitungsbildschirm angezeigt.
Die Datei edit.view.php enthält den Code zum Anzeigen des Notiztexts zur Bearbeitung mit zwei Schaltflächen: Aktualisieren und Abbrechen.
Schaltfläche „Aktualisieren“: Sendet die aktualisierte Notiz an den Server und speichert sie in der Datenbank
Schaltfläche „Abbrechen“: Bricht den Bearbeitungsvorgang ab und leitet den Benutzer zurück zum Notizenbildschirm.
<label for="body" class="block text-sm font-medium text-gray-700">Body</label> <div class="mt-1"> <textarea id="body" name="body" rows="3" class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm" placeholder="Here's an idea for a note..."><?= $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 gap-x-4 justify-end items-center"> <button type="button" class="text-red-500 mr-auto" onclick="document.querySelector('#delete-form').submit()">Delete</button> <a href="/notes" class="inline-flex justify-center rounded-md border border-transparent bg-gray-500 py-2 px-4 text-sm font-medium text-white shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">Cancel</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-white shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">Update</button> </div>
In der Ansicht „Notiz bearbeiten“ wird der Notiztext in einem Textbereich angezeigt, sodass der Benutzer Änderungen vornehmen kann. Die Schaltfläche „Aktualisieren“ sendet die aktualisierte Notiz an den Server und speichert sie in der Datenbank.
Um eine Notiz zu aktualisieren, müssen wir eine neue Datei namens update.php erstellen, die die Validierung der Notiz und auch die Autorisierung des Benutzers überprüft. Mit dieser Datei können nur autorisierte Benutzer Notizen anzeigen und bearbeiten, die bereits in der Datenbank vorhanden sind.
<?php use Core\App; use Core\Database; use Core\Validator; $db = App::resolve(Database::class); $currentUserId = 1; // find the corresponding note $note = $db->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();
Um das Bearbeiten und Aktualisieren von Notizen zu ermöglichen, müssen wir die folgenden Routen in route.php hinzufügen:
$router->get('/note/edit', 'controllers/notes/edit.php'); $router->patch('/note', 'controllers/notes/update.php');
Diese Routen ermöglichen die Bearbeitung und Aktualisierung von Notizen mithilfe der PATCH-Anfragemethode.
Wenn ein Benutzer eine Notiz bearbeiten möchte, wird er zum Bearbeitungsbildschirm weitergeleitet, wo er Änderungen an der Notiz vornehmen kann. Wenn ein Benutzer Änderungen übermittelt, wird die Datei update.php aufgerufen. Diese Datei prüft, ob der Benutzer zum Bearbeiten der Notiz berechtigt ist und ob die Validierung der Notiz korrekt ist. Wenn beide Prüfungen erfolgreich sind, wird die Notiz in der Datenbank aktualisiert und der Benutzer wird zurück zum Notizenbildschirm weitergeleitet. Wenn eine der Prüfungen fehlschlägt, wird der Benutzer mit Fehlermeldungen zurück zum Bearbeitungsbildschirm weitergeleitet.
Durch Befolgen dieser Schritte kann ein Benutzer die Notiz einfach mit der PATCH-Anfragemethode bearbeiten und aktualisieren.
Ich hoffe, dass Sie es klar verstanden haben.
Das obige ist der detaillierte Inhalt vonBearbeiten und Aktualisieren von Notizen mithilfe der PATCH-Anforderungsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!