İçeriğe geç

Laravel Route Model Binding Nedir ve Kullanımı

Laravel route’da tanımlı Eloquent modeli otomatik olarak kullanmanızı sağlar. Basit bir örnek;


use App\Models\User;

Route::get('/users/{user}', function (User $user) { // {user} default olarak atanmış id'ye göre User'ı çeker.
    return $user->email;
});

Detaylı örneğe bakarsak;

// routes/web.php
use App\Http\Controllers\GameController;

Route::get('/game/3', [GameController::class, 'index']);

Controller show metodunu şu şekilde yapmak yerine;

public function show($id)
    {
      $game = Game::find($id);
      return view('games.show', compact('game'));
    }

Route Model Binding kullanarak aşağıdaki gibi yapabilirsiniz.

public function show(Game $game)
    {
      return view('games.show', compact('game'));
    }

Diğer örnek kullanımlar;
Slug yapısı kullanmanızda kolaylıklar sağlar;

// post table da slug sutunu olması gerekiyor
Route::get('/posts/{post:slug}', 'PostsController@show');
http://app.test/posts/post-title

//kullanıcıya sadece kendi postları gösterilir(user id ile postun user id si aynı ise gösterilir)
Route::get('/users/{user}/posts/{post:slug}', 'PostsController@show');
//slug yerine direk id de yazabilirsin
Route::get('/users/{user}/posts/{post:id}', 'PostsController@show');
Kategori:Laravel

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir