Implicit Route Model Binding trong Laravel

  • 24 Tháng Mười, 2022

Thông thường, khi chúng ta muốn lấy thông tin của một bài viết bất kì thì ta phải truyền vào id và sử dụng hàm find() để truy xuất dữ liệu. Tuy nhiên Laravel hỗ trợ chúng ta Implicit Route Model Binding để có thể truy xuất dữ liệu dễ dàng hơn
Trong Laravel, mặc định Implicit binding sẽ where theo khoá chính của table để lấy ra model tương ứng

use App\Models\Post; Route::get('/posts/{post}', function (Post $post) { return $post->title; });
Code language: PHP (php)

Nếu dữ liệu không được tìm thấy, nó sẽ tự động trả về 404

Tuỳ biến tên khoá

Bạn có thể thay đổi bằng cách

use App\Models\Post; Route::get('/posts/{post:slug}', function (Post $post) { return $post; });
Code language: PHP (php)

hoặc override lại phương thức getRouteKeyName()

/** * Get the route key for the model. * * @return string */ public function getRouteKeyName() { return 'slug'; }
Code language: PHP (php)
0
Rất thích suy nghĩ của bạn, hãy bình luận.x