Bài giảng Phát triển phần mềm nguồn mở: Bài 8 - Nguyễn Hữu Thể
Số trang: 56
Loại file: pdf
Dung lượng: 812.34 KB
Lượt xem: 30
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Trong mô hình MVC thì project sẽ được chia ra làm 3 phần (Model, View, Controller) và trong Laravel framework cũng chia làm 3 phần như vậy. Ở các bài giảng trước đã giới thiệu với các bạn về view trong Laravel, ở phần này sẽ giới thiệu với các bạn về controllers, request, response, session trong Laravel. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Phát triển phần mềm nguồn mở: Bài 8 - Nguyễn Hữu Thể PHÁT TRIỂN PHẦN MỀM NGUỒN MỞ CONTROLLERS, REQUEST, RESPONSE, SESSION Nguyễn Hữu Thể Controllers − Introduction − Basic Controllers • Defining Controllers • Controllers & Namespaces • Single Action Controllers 2 1 View: nhap.blade.php Controllers − Controllers có thể nhóm các xử lý request logic vào một class. − Thư mục Controllers: app/Http/Controllers ❖ Tạo Controller: php artisan make:controller --plain 5 Controllers namespace App\Http\Controllers; use App\User; use App\Http\Controllers\Controller; class UserController extends Controller { /** * Show the profile for the given user. * * @param int $id * @return Response */ public function show($id) { return view('user.profile', ['user' => User::findOrFail($id)]); } } 6 Controllers ▪ Định nghĩa một route cho action của controller Route::get('user/{id}', 'UserController@show'); ▪ Khi request với route URI, phương thức show của class UserController sẽ được thực thi. 7 Action Controllers __invoke(): Định nghĩa một controller xử lý duy nhất một action namespace App\Http\Controllers; use App\User; use App\Http\Controllers\Controller; class ShowProfile extends Controller { public function __invoke($id) { return view('user.profile', ['user' => User::findOrFail($id)]); } } Khi đó bạn đăng ký một route cho một action controllers, bạn không cần xác định phương thức: Route::get('user/{id}', 'ShowProfile'); 8 Example Step 1 − Execute the following command to create UserController. php artisan make:controller UserController --plain Step 2 − After successful execution, you will receive the following output. Step 3 − You can see the created controller at app/Http/Controller/UserController.php with some basic coding already written for you and you can add your own coding based on your need. HTTP Requests − Accessing The Request − Request Path & Method − Retrieving Input − Files • Retrieving Uploaded Files • Storing Uploaded Files 10 HTTP Requests − Lấy đối tượng hiện tại của HTTP request namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function store(Request $request) { $name = $request->input('name'); // } } 11 Dependency Injection & Route Parameters − Khi controller cần lấy input từ tham số route thì • Phải liệt kê danh sách tham số route vào sau các dependencies. Route::put('user/{id}', 'UserController@update'); 12 Dependency Injection & Route Parameters − Truy cập vào tham số route id bằng cách định nghĩa phương thức trong controller namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function update(Request $request, $id) { // } } 13 Đường dẫn Request & Phương thức − Nhận đường dẫn Request • Phương thức path trả về thông tin đường dẫn của request. • Vì vậy, nếu request gửi đến là http://domain.com/foo/bar, phương thức path sẽ trả về foo/bar: $uri = $request->path(); − Phương thức is: xác nhận những request gửi đến có đường dẫn khớp với pattern hay không. Có thể sử dụng ký tự * if ($request->is('admin/*')) { // } 14 Nhận Request URL − Để nhận đường dẫn đầy đủ URL từ request gửi • => phương thức url or fullUrl. // Without Query String... $url = $request->url(); // With Query String... $url = $request->fullUrl(); 15 Nhận phương thức Request − Phương thức method: trả về phương thức HTTP tương ứng với request. − Phương thức isMethod: xác thực phương thức HTTP khớp với string $method = $request->method(); if ($request->isMethod('post')) { // } 16 Lấy tất cả dữ liệu Input − Phương thức all(): Lấy tất cả dữ liệu input như một array $input = $request->all(); 17 Lấy giá trị một Input − Phương thức input $name = $request->input('name'); − Có thể truyền giá trị của tham số như là một đối số thứ hai trong phương thức input. Giá trị sẽ được trả về nếu giá trị input không có trong request $name = $request->input('name', 'Sally'); − Khi làm việc với form chứa mảng input, sử dụng dấm 'chấm' để truy cập giá trị của mảng $name = $request->input('products.0.name'); $names = $request->input('products.*.name'); 18 Lấy Input qua thuộc tính động − Nếu form ứng dụng có chứa trường name, có thể truy lấy giá trị bằng cách: $name = $request->name; 19 Lấy giá trị JSON Input − Khi gửi JSON requests đến ứng dụng, có thể lấy dữ liệu JSON qua phương thức input (Content-Type header của request ...
Nội dung trích xuất từ tài liệu:
Bài giảng Phát triển phần mềm nguồn mở: Bài 8 - Nguyễn Hữu Thể PHÁT TRIỂN PHẦN MỀM NGUỒN MỞ CONTROLLERS, REQUEST, RESPONSE, SESSION Nguyễn Hữu Thể Controllers − Introduction − Basic Controllers • Defining Controllers • Controllers & Namespaces • Single Action Controllers 2 1 View: nhap.blade.php Controllers − Controllers có thể nhóm các xử lý request logic vào một class. − Thư mục Controllers: app/Http/Controllers ❖ Tạo Controller: php artisan make:controller --plain 5 Controllers namespace App\Http\Controllers; use App\User; use App\Http\Controllers\Controller; class UserController extends Controller { /** * Show the profile for the given user. * * @param int $id * @return Response */ public function show($id) { return view('user.profile', ['user' => User::findOrFail($id)]); } } 6 Controllers ▪ Định nghĩa một route cho action của controller Route::get('user/{id}', 'UserController@show'); ▪ Khi request với route URI, phương thức show của class UserController sẽ được thực thi. 7 Action Controllers __invoke(): Định nghĩa một controller xử lý duy nhất một action namespace App\Http\Controllers; use App\User; use App\Http\Controllers\Controller; class ShowProfile extends Controller { public function __invoke($id) { return view('user.profile', ['user' => User::findOrFail($id)]); } } Khi đó bạn đăng ký một route cho một action controllers, bạn không cần xác định phương thức: Route::get('user/{id}', 'ShowProfile'); 8 Example Step 1 − Execute the following command to create UserController. php artisan make:controller UserController --plain Step 2 − After successful execution, you will receive the following output. Step 3 − You can see the created controller at app/Http/Controller/UserController.php with some basic coding already written for you and you can add your own coding based on your need. HTTP Requests − Accessing The Request − Request Path & Method − Retrieving Input − Files • Retrieving Uploaded Files • Storing Uploaded Files 10 HTTP Requests − Lấy đối tượng hiện tại của HTTP request namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function store(Request $request) { $name = $request->input('name'); // } } 11 Dependency Injection & Route Parameters − Khi controller cần lấy input từ tham số route thì • Phải liệt kê danh sách tham số route vào sau các dependencies. Route::put('user/{id}', 'UserController@update'); 12 Dependency Injection & Route Parameters − Truy cập vào tham số route id bằng cách định nghĩa phương thức trong controller namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function update(Request $request, $id) { // } } 13 Đường dẫn Request & Phương thức − Nhận đường dẫn Request • Phương thức path trả về thông tin đường dẫn của request. • Vì vậy, nếu request gửi đến là http://domain.com/foo/bar, phương thức path sẽ trả về foo/bar: $uri = $request->path(); − Phương thức is: xác nhận những request gửi đến có đường dẫn khớp với pattern hay không. Có thể sử dụng ký tự * if ($request->is('admin/*')) { // } 14 Nhận Request URL − Để nhận đường dẫn đầy đủ URL từ request gửi • => phương thức url or fullUrl. // Without Query String... $url = $request->url(); // With Query String... $url = $request->fullUrl(); 15 Nhận phương thức Request − Phương thức method: trả về phương thức HTTP tương ứng với request. − Phương thức isMethod: xác thực phương thức HTTP khớp với string $method = $request->method(); if ($request->isMethod('post')) { // } 16 Lấy tất cả dữ liệu Input − Phương thức all(): Lấy tất cả dữ liệu input như một array $input = $request->all(); 17 Lấy giá trị một Input − Phương thức input $name = $request->input('name'); − Có thể truyền giá trị của tham số như là một đối số thứ hai trong phương thức input. Giá trị sẽ được trả về nếu giá trị input không có trong request $name = $request->input('name', 'Sally'); − Khi làm việc với form chứa mảng input, sử dụng dấm 'chấm' để truy cập giá trị của mảng $name = $request->input('products.0.name'); $names = $request->input('products.*.name'); 18 Lấy Input qua thuộc tính động − Nếu form ứng dụng có chứa trường name, có thể truy lấy giá trị bằng cách: $name = $request->name; 19 Lấy giá trị JSON Input − Khi gửi JSON requests đến ứng dụng, có thể lấy dữ liệu JSON qua phương thức input (Content-Type header của request ...
Tìm kiếm theo từ khóa liên quan:
Phần mềm nguồn mở Phát triển phần mềm nguồn mở Single Action Controllers HTTP Requests Creating Responses View ResponsesGợi ý tài liệu liên quan:
-
183 trang 316 0 0
-
'Phần mềm tự do và phần mềm nguồn mở' Free and Open Source Software – Asia-Pacific Consultation
5 trang 132 0 0 -
Xây dựng hệ thống tích hợp liên tục nội bộ sử dụng công cụ nguồn mở Jenkins và Gitlab
11 trang 88 0 0 -
25 trang 44 0 0
-
Giáo trình Nhập môn quản trị hệ thống Linux
145 trang 44 0 0 -
Bài giảng Phần mềm nguồn mở: Bài 3 - Đoàn Thiện Ngân
12 trang 39 0 0 -
Bài giảng Phần mềm nguồn mở: Bài 1 - Đoàn Thiện Ngân
29 trang 37 0 0 -
Bài giảng Nhập môn công nghệ thông tin và truyền thông: Bài 7 - GV. Lê Thanh Hương
29 trang 37 0 0 -
Đề cương ôn tập học kì 1 môn Tin học lớp 11 năm 2023-2024 - Trường THPT Hoàng Văn Thụ, Hà Nội
7 trang 32 0 0 -
Bài giảng Phần mềm nguồn mở: Bài 5 - Đoàn Thiện Ngân
9 trang 28 0 0