Bearbeiten und Aktualisieren von Notizen mithilfe der PATCH-Anforderungsmethode

WBOY
Freigeben: 2024-07-17 12:25:51
Original
360 Leute haben es durchsucht

Editing and Updating Notes using PATCH Request Method

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.

Hinzufügen einer Schaltfläche „Bearbeiten“.

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>
Nach dem Login kopieren

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.

Notizen bearbeiten

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
]);
Nach dem Login kopieren

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.

Notizansicht bearbeiten

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>
Nach dem Login kopieren

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.

Notizen aktualisieren

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();
Nach dem Login kopieren

Routen hinzufügen

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');
Nach dem Login kopieren

Diese Routen ermöglichen die Bearbeitung und Aktualisierung von Notizen mithilfe der PATCH-Anfragemethode.

Wie es funktioniert

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!