Legarea Automată a Modelelor (Route Model Binding) în Laravel

routing Laravel 11.x / Eloquent Q&A / Distribuie cod

Injectarea automată a instanței modelului Eloquent în controller pe baza ID-ului sau a slug-ului din URL cu aruncare automată de HTTP 404.

Sintaxă
public function show(Post $post) / Route::get('/posts/{post:slug}', ...)

Route Model Binding este una dintre cele mai elegante facilități din Laravel: dacă numele parametrului din rută (de exemplu {post}) coincide cu denumirea variabilei din metoda controllerului tipizată cu modelul Eloquent (Post $post), Laravel va interoga automat baza de date.

Dacă înregistrarea nu există, framework-ul declanșează instantaneu o excepție ModelNotFoundException ce produce un răspuns 404 Not Found, eliminând complet nevoia de a scrie manual Post::findOrFail($id).

De asemenea, poți lega modele după alte coloane unice, cum ar fi slug-ul: {post:slug}.

Exemplu: Route Model Binding după slug și controller dedicat
// routes/web.php
use App\Models\Article;
use App\Http\Controllers\ArticleController;
use Illuminate\Support\Facades\Route;

Route::get('/articole/{article:slug}', [ArticleController::class, 'show']);

// app/Http/Controllers/ArticleController.php
namespace App\Http\Controllers;

use App\Models\Article;

class ArticleController extends Controller
{
    // Instanța $article este injectată automat pe baza slug-ului din URL!
    public function show(Article $article)
    {
        return view('articles.show', ['article' => $article]);
    }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Legarea Automată a Modelelor (Route Model Binding)

Ai o nelămurire despre utilizarea comenzii Legarea Automată a Modelelor (Route Model Binding) sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.