Bài 15: Cập nhật thông tin người dùng trong Laravel 5
Trong bài viết trước mình đã hướng dẫn các bạn cách để lấy thông tin người dùng sau khi xác thực thành công. Trong bài này “Cập nhật thông tin người dùng trong laravel 5”, mình sẽ hướng dẫn các bạn cách để thay đổi thông tin người dùng.
1. Tạo UsersController và tạo đường dẫn
Các bạn vào console và trỏ vào thư mục chứa ứng dụng của mình rồi gõ lệnh php artisan make:controller UsersController --resource để tạo Controller cho User:
Sau khi gõ xong và hiện lên thông báo tạo Controller thành công các bạn vào app/Http/Controllers/UsersController.php sẽ thấy có rất nhiều hàm (action) được Laravel tạo ra trước.
Để cập nhật thông tin người dùng thì ta sẽ sử dụng 2 hàm đó là edit và update. Cả 2 hàm này đều nhận vào input đó là id của người dùng trong đó hàm edit có nhiệm vụ trả về form thông tin người dùng để chỉnh sửa còn hàm update sẽ cập nhật thông tin đã được thay đổi vào trong cơ sở dữ liệu.
Trong hàm edit thì ta sẽ lấy thông tin của người dùng thông qua id được truyền vào và gửi qua view để hiển thị cho người dùng thay đổi:
Việc tiếp theo cần làm đó là tạo các đường dẫn (route) để có thể truy cập vào trang cập nhật thông tin người dùng. Các bạn vào fileapp/Http/routes.php và thêm dòng lệnh sau:
2. Cài đặt Laravel HTML Package
Các bạn có thể xây dựng view bằng HTML thông thường tuy nhiên Laravel đã cung cấp một công cụ hỗ trợ là Laravel HTML package để có thể xây dựng các view một cách dễ dàng hơn.
Để cài đặt các bạn vào console và trỏ đến thư mục ứng dụng rồi gõ lệnh composer require laravelcollective/html như sau:
Tiếp theo các bạn vào file config/app.php và thêm vào mảng providers dòng lệnh sau:
Sau đó các bạn thêm dòng lệnh sau vào trong mảng aliases cũng trong file config/app.php:
Một số ví dụ về cách sử dụng Laravel HTML package như sau:
Tương đương với:
Để hiểu rõ hơn về các helper của Laravel HTML package thì các bạn có thể xem tại https://github.com/LaravelCollective/html .
3. Xây dựng view edit.blade.php
Các bạn tạo view edit.blade.php và đặt nó trong thư mục resources/views/users như sau:
Trong view edit.blade.php thì các bạn sẽ tạo ra các trường để người dùng thay đổi thông tin và một button để submit thay đổi đó sử dụng các helper đã cài đặt trong Laravel HTML package ở trên như sau:
Sau đó các bạn vào trong đường dẫn /users/{id}/edit (trong đó {id} là id người dùng trong cơ sở dữ liệu của bạn) ví dụ như mình vào đường dẫn /users/1/edit thì sẽ hiển thị nội dung như sau:
4. Tạo UserFormRequest để thực hiện action update
Chúng ta cần phải tạo một form request để kiểm tra thông tin dữ liệu được gửi từ form. Để tạo form request thì các bạn vào console gõ lệnhphp artisan make:request UserFormRequest như sau:
Sau đó các bạn vào file app/Http/Request/UserFormRequest sẽ thấy có 2 hàm được xây dựng sẵn đó là hàm authorize dùng để giới hạn truy cập đối với form và hàm rules để tạo ra các qui định về dữ liệu. Trong trường hợp này ta sẽ chuyển nội dung của hàm authorize từ falsethành true để ai cũng có thể sử dụng được form và tạo ra các qui tắc dữ liệu cho form cập nhật thông tin người dùng trong hàm rules như sau:
Tiếp theo ta vào trong file app/Http/Controllers/UsersController và thay đổi nội dung hàm update như sau:
Hàm update sẽ nhận $id người dùng vào và cập nhật thông tin người dùng từ $request được gửi từ form sau khi kiểm tra tạiUserFormRequest (thông qua các rules) rồi trả về thông báo cho người dùng.
Sau đó các bạn có thể bắt đầu cập nhật thông tin người dùng tại đường dẫn /users/{id}/edit và kết quả hiện ra như sau:
Như vậy là mình đã hướng dẫn các bạn cập nhật thông tin người dùng trong Laravel 5. Chúc các bạn thành công và nếu có thắc mắc gì thì hãy comment phía dưới nhé ^_^
Comments
Post a Comment