Heim  >  Artikel  >  PHP-Framework  >  So löschen Sie einen Benutzer in Laravel

So löschen Sie einen Benutzer in Laravel

PHPz
PHPzOriginal
2023-04-21 10:09:04555Durchsuche

Das Laravel-Framework bietet leistungsstarke Funktionen zum Betrieb von Datenbanken. Eine der häufigsten Funktionen besteht darin, Datensätze in der Datenbank zu löschen. In vielen Anwendungen müssen wir Benutzer löschen. In diesem Artikel wird erklärt, wie man einen Benutzer in Laravel löscht.

Zunächst benötigen wir ein Benutzermodell. Wenn Sie bereits eines haben, überspringen Sie diesen Schritt. Hier ist ein einfaches Benutzermodell:

<?php

namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    protected $guarded = [];
}

In diesem Modell verwenden wir die integrierte Klasse Authenticatable von Laravel. Außerdem ist ein $guarded-Attribut definiert, das Laravel mitteilt, welche Eigenschaften nicht stapelweise zugewiesen werden können. In diesem Fall schränken wir keine Eigenschaften ein. Authenticatable类。还定义了一个$guarded属性,它告诉Laravel哪些属性不能被批量赋值。在本例中,我们没有限制任何属性。

接下来,我们需要一个控制器来处理删除用户的操作。假设我们已经有了一个UserController控制器,并且定义了一个destroy方法,这个方法将在请求中传递一个用户ID,并删除相应的用户。下面是一个基本的UserController控制器:

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function destroy(Request $request)
    {
        $user = User::find($request->id);
 
        if ($user) {
            $user->delete();
            return redirect('/users')->with('success', 'User deleted successfully');
        }
 
        return redirect('/users')->with('error', 'User not found');
    }
}

在这个控制器中,我们首先获取请求中传递的用户ID,然后通过User模型查找用户记录。如果找到了用户,我们调用delete方法来删除用户记录。如果用户记录不存在,我们将重定向到用户列表页面,并显示一个错误消息。

现在,我们需要一个路由来处理删除用户请求。下面是一个路由定义:

Route::delete('/users/{id}', 'UserController@destroy')->name('users.delete');

在这个路由中,我们使用了RESTful风格的路由。它将HTTP DELETE请求映射到UserController控制器的destroy方法,并将请求中的参数{id}作为方法的参数传递。

接下来,我们需要一个视图来显示用户列表和执行删除操作。以下是一个简单的用户列表视图:

@extends('layouts.app')
 
@section('content')
    <div class="container">
        @if (session('success'))
            <div class="alert alert-success">
                {{ session('success') }}
            </div>
        @endif
 
        @if (session('error'))
            <div class="alert alert-danger">
                {{ session('error') }}
            </div>
        @endif
 
        <h3>Users</h3>
 
        <table class="table">
            <thead>
            <tr>
                <th>ID</th>
                <th>Name</th>
                <th>Email</th>
                <th>Actions</th>
            </tr>
            </thead>
            <tbody>
            @foreach($users as $user)
                <tr>
                    <td>{{ $user->id }}</td>
                    <td>{{ $user->name }}</td>
                    <td>{{ $user->email }}</td>
                    <td>
                        <form action="{{ route(&#39;users.delete&#39;, $user->id) }}" method="POST">
                            @csrf
                            @method('DELETE')
 
                            <button type="submit" class="btn btn-danger btn-sm">Delete</button>
                        </form>
                    </td>
                </tr>
            @endforeach
            </tbody>
        </table>
    </div>
@endsection

在这个视图中,我们首先检查是否有任何成功或错误消息。如果有,我们将它们显示出来。然后,我们列出所有用户,并在每行末尾放置了一个删除按钮。当用户点击删除按钮时,我们将在表单中提交一个DELETE请求到users.delete路由,并传递用户的ID作为参数。

现在,我们已经完成了Laravel中删除用户的操作。当我们在用户列表中点击删除按钮时,我们将执行UserController控制器的destroy

Als nächstes benötigen wir einen Controller, der das Löschen des Benutzers übernimmt. Angenommen, wir haben bereits einen UserController-Controller und definieren eine destroy-Methode. Diese Methode übergibt eine Benutzer-ID in der Anfrage und löscht den entsprechenden Benutzer. Hier ist ein einfacher UserController-Controller:

rrreee

In diesem Controller erhalten wir zuerst die in der Anfrage übergebene Benutzer-ID und suchen dann den Benutzerdatensatz über das User-Modell . Wenn der Benutzer gefunden wird, rufen wir die Methode delete auf, um den Benutzerdatensatz zu löschen. Wenn der Benutzerdatensatz nicht vorhanden ist, leiten wir zur Benutzerlistenseite weiter und zeigen eine Fehlermeldung an. 🎜🎜Jetzt brauchen wir eine Route, um Löschanfragen von Benutzern zu verarbeiten. Das Folgende ist eine Routendefinition: 🎜rrreee🎜 In dieser Route verwenden wir Routing im RESTful-Stil. Es ordnet die HTTP-DELETE-Anfrage der destroy-Methode des UserController-Controllers zu und übergibt den Parameter {id} in der Anfrage als Parameter der Methode. 🎜🎜Als nächstes benötigen wir eine Ansicht, um die Benutzerliste anzuzeigen und Löschvorgänge durchzuführen. Hier ist eine einfache Benutzerlistenansicht: 🎜rrreee🎜 In dieser Ansicht prüfen wir zunächst, ob Erfolgs- oder Fehlermeldungen vorliegen. Wenn ja, zeigen wir sie an. Anschließend haben wir alle Benutzer aufgelistet und am Ende jeder Zeile eine Schaltfläche zum Löschen platziert. Wenn der Benutzer auf die Schaltfläche „Löschen“ klickt, senden wir im Formular eine DELETE-Anfrage an die Route users.delete und übergeben dabei die Benutzer-ID als Parameter. 🎜🎜Jetzt haben wir den Vorgang zum Löschen von Benutzern in Laravel abgeschlossen. Wenn wir in der Benutzerliste auf die Schaltfläche „Löschen“ klicken, führen wir die Methode destroy des Controllers UserController aus, löschen den entsprechenden Benutzer und leiten den Benutzer zur Benutzerlistenseite um , Zeigt außerdem eine Erfolgs- oder Fehlermeldung an. 🎜🎜Insgesamt ist das Löschen von Benutzern in Laravel sehr einfach. Wir müssen lediglich einen Controller erstellen, die entsprechenden Routen definieren, eine Ansicht erstellen und die relevanten Modelle einrichten. Das Laravel-Framework bietet viele leistungsstarke Tools zur Abwicklung von Datenoperationen, die es uns ermöglichen, schnell funktionsreiche Anwendungen zu entwickeln. 🎜

Das obige ist der detaillierte Inhalt vonSo löschen Sie einen Benutzer in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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