9. {
10. return "Xem thông tin cuốn sách $bid"; 11. } 11. }
WebAppDevLê Đình Thanh, Nguyễn Việt Anh
197
Để ngƣời dùng có thể truy cập các hành động của lớp điều khiển, ứng dụng
cần cung cấp thông tin định tuyến, tức đƣờng dẫn đến hành động. Ví dụ, ngƣời
dùng có thể sử dụng đƣờng dẫn "/books/123" để truy cập hành động show() của BookController nếu ứng dụng khai báo đƣờng dẫn sau:
1. <?php
2. // Tệp routes/web.php 3. ... 3. ...
4. Route::get('/books/{bookId}', 'BookController@show');
Trong nhiều trƣờng hợp, lớp điều khiển có các hành động chuẩn (index, create,
store, show, edit, update, destroy), nguyên mẫu của chúng có thể đƣợc tạo tự động
cùng với tạo lớp điều khiển nhƣ ví dụ sau:
php artisan make:controller BookController –resource
trong đó, tham số -resource đƣợc đƣa v|o cuối c}u lệnh để artisan tạo các hành
động chuẩn cho lớp điều khiển.
Mặt khác, đƣờng dẫn đến các hành động chuẩn có thể đƣợc khai báo gộp nhƣ
sau:
Route::resource(‘/books, ‘BookController’);
Khai báo này sẽ tạo ra nhiều đƣờng dẫn, mỗi đƣờng dẫn đến một hành động
chuẩn của BookController. Các đƣờng dẫn đƣợc tạo cụ thể nhƣ sau:
Phƣơng thức HTTP URI Hành động
GET /books index
GET /books/create create
POST /books store
GET /books/{bookId} show
GET /books/{bookId}/edit edit
PUT/PATCH /books/{bookId} update
DELETE /books/{bookId} destroy
Nói cách khác, khai báo:
Route::resource(‘/books, ‘BookController’);
tƣơng đƣơng với các khai báo sau:
Route::get(‘/books, ‘BookController@index’);
Route::get(‘/books/create’, ‘BookController@create’); Route::post(‘/books, ‘BookController@store’);
WebAppDevLê Đình Thanh, Nguyễn Việt Anh 198 198 Route::get(‘/books/{bookId}/edit’, ‘BookController@edit’); Route::put(‘/books/{bookId}’, ‘BookController@update’); Route::patch(‘/books/{bookId}’, ‘BookController@update’); Route::delete(‘/books/{bookId}’, ‘BookController@delete’);
Nếu cần đọc giá trị của tham số trong yêu cầu HTTP, ví dụ tham số chứa dữ liệu do ngƣời dùng nhập, hàm gọi lại hoặc hành động của bộ điều khiển có thể sử dụng đối tƣợng Request của Laravel. Đối tƣợng này cung cấp một trừu tƣợng bao gói lên yêu cầu HTTP, cho phép truy cập các trƣờng thông tin của yêu cầu HTTP một cách dễ dàng. Ví dụ, trong mã nguồn sau, các hành động store và update của
bộ điều khiển BookController có thể nhận và phân tích đối tƣợng Request để đọc
các giá trị (tiêu đề sách, các tác giả, ...) do ngƣời dùng nhập và thực hiện tạo mới hay cập nhật sách theo giá trị đọc đƣợc.
1. <?php