Yêu cầu thg 6 5, 2018 7:12 CH 624 0 1
  • 624 0 1
+1

Cách viết laravel để tiện cho người dùng

Chia sẻ
  • 624 0 1

Chào các anh/chị. Hôm nay công ty em còn mỗi em . Có 1 dự án vừa . Họ yêu cầu làm LARAVEL và phải thêm xóa sửa menu của từng mục đó. Các danh mục xóa sửa có thể thêm xóa sửa tùy thích. Slide , custom field . Mong anh chị cho em hỏi cách viết nào thuận tiện nhất và mình làm route như thế nào ạ. Cám ơn anh chị nhiều .

1 CÂU TRẢ LỜI


Đã trả lời thg 6 6, 2018 12:29 SA
Đã được chấp nhận
+2

Ý em là làm Menu điều hướng ở trên website có thể được thay đổi trong Admin à.

  • Thêm/sửa/xóa một menu item.
  • Menu item được thêm có thể là Danh Mục của hệ thống hoặc không phải Danh mục tức nhập tay gồm: Tiêu đề, URL, vị trí.

Như vậy, a nghĩ e có thể tham khảo, mình tạo một bảng menu lưu danh sách menu item. Menu item có các thuộc tính:

  • label: Tên được hiển thị trên menu
  • url: Đường dẫn tới trang đích khi click vào menu item
  • category_id: ID của danh mục (nếu menu item liên kết tới một danh mục hệ thống trong trường hợp thêm dựa trên category). Cũng là để phân biệt menu item là danh mục hay là nhập tay.
  • parent_item_id: ID của menu item cha chứa nó.
  • position: Số thứ tự của item đó trong danh sách menu.

Về giao diện quản trị, nếu để thuận tiện cho người admin thì anh nghĩ cứ show danh sách menu item ra, hiển thị theo nhóm theo parent_item_id. Mỗi menu item có một icon hỗ trợ kéo thả (hoặc không thì nút click up/down) để thay đổi vị trí menu item trong danh sách; Một icon để chỉnh sửa menu item; Một icon để xóa.

Khi thêm mới menu item lúc nhập tên có có thể search theo tên danh mục, hiển thị dạng auto complete. Nếu được chọn, thì lưu thêm category_id để liên kết tới danh mục. Trường hợp không liên kết thì cứ lưu lại label, url position như bình thường.

Về việc hiển thị thì mình query hết menu item ra rồi, nhóm phân cấp theo parent_item_id/ sắp xếp theo position bằng PHP. Hoặc em query lần lượt theo parent_item_id cũng được. Sau khi log ra một danh sách theo thứ tự đúng thì lúc hiển thị có thể làm kiểu đệ quy. Ngoài ra, vì menu thì ít thay đổi nên sau khi có được danh sách đã sắp xếp, em cache forever nó lại. Lần đầu thì query từ db, nhóm sắp xếp. Lần thứ 2 thì lấy trong cache ra. Sau này, mỗi khi admin thêm sửa xóa thì em xóa cache đi là được.

Ngoài ra nữa là, thay vì dùng parent_item_id em có thể nghĩ ra cách nào đó như quản trị theo cách nhóm menu chẳng hạn... Và nếu yêu cầu của hệ thống không cần làm đến mức kéo thả/auto complete như a nói thì đừng làm. Nhất là nếu outsource, thì làm đúng đủ theo yêu cầu khách hàng thôi nhé.

Chia sẻ
Avatar Jisson Lyoko @jissonlyoko
thg 6 6, 2018 1:35 SA

Dạ. E cám ơn anh Kim. Vậy thì khi khách hàng yêu cầu url ví dụ như category sản phẩm có url là abc.com/san-pham và cái còn lại cũng thế thì mìn viết nhiư nào ạ. Cám ơn anh đã thông não cho em

thg 6 6, 2018 2:19 SA

Vậy thì khi khách hàng yêu cầu url ví dụ như category sản phẩm có url là abc.com/san-pham và cái còn lại cũng thế thì mìn viết nhiư nào ạ.

Anh chưa hiểu câu hỏi này của em?

Khi thêm một menu item thì em có form nhập có field label, url. Nếu có thể có button chọn category liên kết tới menu item. Nếu là menu item có liên kết category, thì em có thể tự động fill thêm urllabel dẫn tới trang xem danh mục đấy. Dựa trên category_id.

Trường hợp không liên kết tới category, chỉ là một menu item dẫn tới một trang nào đó thì admin phải điền url vào.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí