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');
İlk Yorumu Siz Yapın