Route Model Binding là gì ?

Gắn Route Model (Route Model Binding)

Gắn Route Model trong Laravel cung cấp một cách thức thuận tiện để tự động bơm thực thể khởi
tạo model (model instances) trực tiếp vào các routes hay controllers của bạn. Thay vì truy vấn
CSDL cho model trong hành động route hay controller của bạn, bạn có thể viết gợi ý model trong chữ
kí hành động route hay controller của bạn, và Laravel sẽ tự động giành thực thể khởi tạo model
cho bạn.
Có hai dạng route model binding: ngầm định và công khai.
Gắn ngầm định
Laravel tự động phân giải các Eloquent models được định nghĩa trong hành động các routes hay
controllers các tên biến của chúng khớp với một tên đoạn route.

Route::get( ‘api/posts/{post}’ ,
function (App\Post $post) {
return $post;
});

Trong ví dụ này, {post} trong URI là một tham số route. Laravel sẽ tự động bơm thực thể khởi tạo
App\Post cái có một ID khớp với giá trị tương ứng từ URI được yêu cầu. Nếu một
thực thể khởi tạo model khớp không được tìm thấy trong CSDL, một trả lời HTTP 404 được tự động
khởi tạo.
Gắn công khai
Trong gắn công khai, bạn có thể định nghĩa các gắn model route của bản thân bạn sử dụng
phương thức model của route để chỉ ra class cho một tham số đã cho. Bạn có thể định nghĩa các
gắn model công khai của bạn trong phương thức boot của class RouteServiceProvider.

public function boot ()
{
parent ::boot();
Route::model( ‘user’ , App\User::class);
}

Sau khi gắn này được thiết lập, bạn có thể viết gợi ý thực thể khởi tạo App\User trong
hành động một route hay controller:

Route::get( ‘profile/{user}’ , function (App\User
$user) {
return $user;
});

Trong trường hợp này, {user} trong một gắn model công khai cái Laravel sẽ thay thế với một thực
thể khởi tạo App\User.

Chia sẻ

Leave a Reply

Your email address will not be published. Required fields are marked *