Xây dựng controller post
Contents
Chuẩn bị cơ sở dữ liệu: . 2
Tạo controller , view, model . 2
View/post/new.phtml . 3
Post/new.php . 5
Models/post/model_post.php . 7
Upload ảnh . 7
Post/list.php . 8
Views/post/list/phtml . 9
Post/view.php . 10
View/post/view.phtml . 11
Bài 4. Xây dựng controller post Nghiêm Đình Mừng Bài viết là thành phần căn bản của một website, mỗi bài viết là do một user nhất định đăng lên và chỉ có user này mới có quyền sửa bài viết của mình. Đồng thời mỗi bài viết có thể thuộc một số chuyên mục nào đó. Contents Chuẩn bị cơ sở dữ liệu: ........................................................................................................................... 2 Tạo controller , view, model ................................................................................................................... 2 View/post/new.phtml ............................................................................................................................. 3 Post/new.php .......................................................................................................................................... 5 Models/post/model_post.php ................................................................................................................ 7 Upload ảnh .............................................................................................................................................. 7 Post/list.php ............................................................................................................................................ 8 Views/post/list/phtml ............................................................................................................................. 9 Post/view.php ....................................................................................................................................... 10 View/post/view.phtml .......................................................................................................................... 11 2 Hướng dẫn lập trình php căn bản Nghiêm Đình Mừng Chuẩn bị cơ sở dữ liệu: Đầu tiên chúng ta tạo bảng category để lưu trữ chuyên mục của bài viết: Sau đó các bạn thêm một vài chuyên mục vào bảng ví dụ: Và bây giờ là bảng post để lưu trữ thông tin bài viết: Tạo controller , view, model Các bạn tạo thư mục mới post , và trong view tạo thư mục mới post. Trong controller post các bạn tạo 5 action là new.php,view.php, edit.php, list.php, delete.php tương ứng trong view sẽ là new.phtml,view.phtml,edit.phtml,list.phtml,delete.phtml Đồng thời chúng ta cũng phải tạo model post cho controller này: 3 Hướng dẫn lập trình php căn bản Nghiêm Đình Mừng View/post/new.phtml Đầu tiên chúng ta tạo file view cho action new(thêm bài viết mới). Đầu tiên chúng ta phải thêm layout cho file view này: Các bạn vào post/new.php include view này vào: 4 Hướng dẫn lập trình php căn bản Nghiêm Đình Mừng Sau đó chúng ta tạo 1 form để thêm bài viết mới trong file views/post/new.phtml Kết quả: 5 Hướng dẫn lập trình php căn bản Nghiêm Đình Mừng Post/new.php Tạm thời xong phần view, chúng ta đến phần controller. Do mỗi bài viết là của một user nhất định, do vậy ta phải kiểm tra xem có user đăng nhập hay không, nếu có thì lấy id của user này, nếu không thì chuyển sang trang login: Sau phần lấy thông tin user là phần kiểm tra xem user có nhấn nút thêm bài viết không ? nếu có kiểm tra xem thông tin có đầy đủ hày không và báo lỗi nếu có. Các bạn thêm vào view đoạn lệnh sau trước form để thông báo lỗi: 6 Hướng dẫn lập trình php căn bản Nghiêm Đình Mừng Sau đây là phần xử lý thêm bài viết: Ví dụ chưa chọn ảnh bìa Bây giờ đến phần xử lý chèn thêm bài viết mới: 7 Hướng dẫn lập trình php căn bản Nghiêm Đình Mừng Ta thấy phần code trên có gọi đến class post và hàm inser_post(). Hàm này ở trong model mà ta sẽ làm sau đây: Models/post/model_post.php Upload ảnh Vậy là xong phần chèn dữ liệu, bây giờ đến việc chèn thêm ảnh bìa. Mình sẽ xây dựng một hàm upload ảnh trong file Lib/lib.php Đầu tiên chúng ta tạo thư mục files/images để lưu ảnh: Bây giờ thêm hàm upload ảnh vào file lib/lib.php 8 Hướng dẫn lập trình php căn bản Nghiêm Đình Mừng Câu hỏi đặt ra cho các bạn tại sao $path lại là “../files/images/”? Các bạn gọi thêm hàm upload ảnh sau khi chèn bài viết mới và thêm thông báo đăng bài viết thành công: Post/list.php Tiếp theo là action hiển thị danh sách các bài viết của một user Các bạn thêm hàm lấy danh sách bài viết của một user trong file models post (models/post/model_post.php) Tương tự như file new.php, file list.php cũng phải kiểm tra xem user có đăng nhập hay không và lấy thông tin về user. Sau đó chúng ta sẽ lây bài viết của user đó bằng hàm get_post_for_user() 9 Hướng dẫn lập trình php căn bản Nghiêm Đình Mừng Views/post/list/phtml Chúng ta sử dụng 1bảng và dùng vòng lặp để hiển thị danh sách bài viết của user: 10 Hướng dẫn lập trình php căn bản Nghiêm Đình Mừng Post/view.php Thêm bài viết thì phải hiển thị bài viết, để có thể lấy được id của bài viết mình sẽ truyền qua phương thức GET kiểu như sau: http:/myweb/post/view.php?id=3 vây 3 là mã id của bài viết. Và ta sẽ lấy được biến này bằng phương thức sau $id = $_GET[‘id’] Trong phần code trên ta thấy có gọi hàm get_user_by_user_id() hàm này chưa có trong models user các bạn phải bổ sung như sau: 11 Hướng dẫn lập trình php căn bản Nghiêm Đình Mừng View/post/view.phtml Ok nếu thêm css sẽ đẹp hơn, tạm thời thế này đã: Phần edit bài viết tương tự như phần thêm bài viết các bạn chỉ cần dùng lênh update trong sql là ok. Phần xóa bài viết thì cũng rất đơn giản, các bạn tự làm. Chúc các bạn học tốt và sớm thành công.
File đính kèm:
- Xây dựng controller post.pdf