Heim  >  Artikel  >  Backend-Entwicklung  >  So übergeben Sie Daten von der Route an den Controller und zeigen sie in Laravel 11 an

So übergeben Sie Daten von der Route an den Controller und zeigen sie in Laravel 11 an

WBOY
WBOYOriginal
2024-08-21 21:04:09619Durchsuche

How to Pass Data From Route to Controller and View in Laravel 11

Seit 2020 bis 2024 war die Entwicklung in Laravel ein Segen für die Entwickler auf der ganzen Welt. In diesem kleinen Codebeispiel zeigen wir Ihnen den Weg der Weitergabe von Daten von einer Route an einen Controller und dann an eine Ansicht. Dies ist ein grundlegender Aspekt der Laravel-Entwicklung im Allgemeinen und wir sehen das oft. Laravel 11 bietet wie seine Vorgängerversionen eine elegante und effiziente Möglichkeit, diesen Prozess zu verwalten. Für die Erstellung dynamischer und reaktionsfähiger Webanwendungen ist es von entscheidender Bedeutung, zu verstehen, wie Daten effektiv zwischen diesen Komponenten ausgetauscht werden können.

*(I) Übersicht über das Laravel-Routing
*

In Laravel KÖNNTEN Routen in der Datei „routes/web.php“ definiert werden. Eine Route besteht typischerweise aus einem URL-Pfad und einer entsprechenden Aktion, wie dem Aufrufen einer Methode auf einem Controller usw. usw. Wenn ein Benutzer auf eine bestimmte URL zugreift, bestimmt Laravel die entsprechende Route und führt die zugehörige Logik aus.

Codebeispiel

Route::get('/example', [ExampleController::class, 'show']);

In diesem Beispiel wird die Show-Methode des BeispielControllers ausgeführt, wenn ein Benutzer die URL /example besucht.

*(II) Weitergabe von Daten von der Route an den Controller
*

Im Beispiel unten können Sie also sehen, dass wir Daten von einer Route an einen Controller übergeben würden, und dann würden wir Routenparameter in die URL aufnehmen und auf diese Parameter innerhalb der Controller-Methode zugreifen.

Route::get('/user/{id}', [UserController::class, 'show']);

Hier ist {id} ein Routenparameter. Wenn ein Benutzer /user/1 besucht, wird der ID-Wert 1 an die Show-Methode von UserController übergeben.

Controller-Methode:

public function show($id)
{
    // Fetch the user data using the ID
    $user = User::find($id);

    // Return the view with the user data
    return view('user.profile', ['user' => $user]);
}

Bei dieser Methode wurde der ID-Parameter zum Abrufen eines Benutzers aus unserer Datenbank verwendet. Die abgerufenen Benutzerdaten werden dann an die Ansicht übergeben.

*(III) Übergabe von Daten vom Controller an View
*

Sobald die Daten im Controller verarbeitet werden, ist es häufig erforderlich, diese Daten zum Rendern an eine Ansicht zu übergeben. Laravel bietet mehrere Möglichkeiten, Daten von einem Controller an eine Ansicht zu übergeben.

*(i) Übergeben von Daten mithilfe der with()-Methode
*

public function show($id)
{
    $user = User::find($id);

    // Passing data using with() method
    return view('user.profile')->with('user', $user);
}

*(ii) Übergeben von Daten mithilfe eines assoziativen Arrays
*

public function show($id)
{
    $user = User::find($id);

    // Passing data using an associative array
    return view('user.profile', ['user' => $user]);
}

*(iii) Übergeben von Daten mit der Funktion „compact()“
*

public function show($id)
{
    $user = User::find($id);

    // Passing data using the compact() function
    return view('user.profile', compact('user'));
}

In allen oben genannten kleinen Codebeispielen wurden die Methoden verwendet, die $user-Variable sollte der user.profile-Ansicht zur Verfügung gestellt werden, wo sie dann zur Anzeige der Benutzerinformationen verwendet werden konnte.

*(IV) Zugriff auf übergebene Daten in der Ansicht
*

In der Ansicht kann auf die vom Controller übergebenen Daten mithilfe der Blade-Syntax, der Template-Engine von Laravel, zugegriffen werden.

Beispiel einer Blade-Ansicht:

<!DOCTYPE html>
<html>
<head>
    <title>User Profile</title>
</head>
<body>
    <h1>{{ $user->name }}</h1>
    <p>Email: {{ $user->email }}</p>
</body>
</html>

In diesem Codebeispiel wird in der Blade-Ansicht auf die Variable $user zugegriffen und der Name und die E-Mail-Adresse des Benutzers werden angezeigt.

*(V) Übergabe mehrerer Parameter
*

Sie können auch mehrere Parameter von einer Route an einen Controller und dann an eine Ansicht übergeben.

Routencode-Beispiel

Route::get('/post/{id}/comment/{commentId}', [PostController::class, 'showComment']);

Controller-Methode:

public function showComment($id, $commentId)
{
    $post = Post::find($id);
    $comment = Comment::find($commentId);

    return view('post.comment', compact('post', 'comment'));
}

In diesem Fall werden sowohl die Beitrags- als auch die Kommentardaten an die Ansicht „post.comment“ übergeben.

(VI) Hier sind einige wichtige Hinweise zum besseren Verständnis

(i) – Benannte Routen verwenden: Mit Laravel können Sie benannte Routen definieren, was die Generierung von URLs oder Weiterleitungen innerhalb Ihrer Anwendung erleichtert.

  • (ii) – Eingabe validieren: Validieren Sie immer die Daten aus Routenparametern, bevor Sie sie im Controller verarbeiten. Die integrierten Validierungsfunktionen von Laravel können dabei helfen, sicherzustellen, dass die Daten die erforderlichen Kriterien erfüllen.

  • (iii) – Halten Sie die Controller sauber: Befolgen Sie das Prinzip der Einzelverantwortung, indem Sie sicherstellen, dass sich die Controller auf eine bestimmte Aufgabe konzentrieren. Delegieren Sie bei Bedarf komplexe Logik an Dienste oder Repositorys.

  • (iv) – Abhängigkeitsinjektion verwenden: Verwenden Sie nach Möglichkeit die Abhängigkeitsinjektion in Controllern, um erforderliche Dienste oder Modelle zu injizieren und so den Code testbarer und wartbarer zu machen.

Das Übergeben von Daten von einer Route an einen Controller und dann an eine Ansicht ist ein unkomplizierter Vorgang. In den Tutorials zu Laravel 11 finden Sie weitere Codebeispiele. Indem Sie die verschiedenen verfügbaren Methoden verstehen und Best Practices befolgen, können Sie sicherstellen, dass Ihre Anwendung sauber, effizient und wartbar bleibt. Durch die Nutzung dieser Techniken können Sie robuste und skalierbare Anwendungen erstellen, die einfach zu verwalten und zu erweitern sind.

Das obige ist der detaillierte Inhalt vonSo übergeben Sie Daten von der Route an den Controller und zeigen sie in Laravel 11 an. 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