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]);
}
}
Î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.