Tôi đang gặp rắc rối khi phải xử lý trạng thái hoạt động của menu khi menu không được sử dụng để định tuyến.
Tôi đến từ Drupal nơi hệ thống menu cũng xử lý việc định tuyến. do đó, việc thiết lập trạng thái hoạt động và trạng thái theo dõi hoạt động được xử lý theo tuyến đường (cũng hoạt động như một hệ thống kết xuất menu).
Bây giờ, rất nhiều khung công tác PHP có các lớp Bộ định tuyến xử lý việc định tuyến. Điều này có vẻ là một sự tách biệt tốt vì một Menu không nên biết về POST | | LỰA CHỌN | | ... Yêu cầu.
Nhưng khi viết frontend, tôi thấy mình khó mã hóa menu. Hoặc lưu trữ mọi thứ trong DB và chuyển các giá trị đó vào dạng xem. Điều tôi không thích cách tiếp cận này là bạn đang tạo một bản sao của những gì bạn đã viết trong Bộ định tuyến của mình nhưng hiện đang sử dụng lớp Menu.
Một ví dụ:
Route::get('/somewhere','routename.somewhere','showStuffController');
Route::post('/somewhere','routename.somewhere','saveStuffController');
Menu::add('label.somewhere','routename.somewhere');
Bạn đang phân tách mối quan tâm ở đây, vì vậy đó là tốt đẹp. Nhưng Menu phụ thuộc rất nhiều vào Tuyến đường để đặt trạng thái hoạt động. Menu cũng sẽ phải biết về phân cấp để đặt dấu vết hoạt động.
Vì vậy, có, thiết lập đường dẫn hoạt động và các lớp trạng thái hoạt động thực sự là một điều xem. Nhưng có
if ( Route::currentName() === $menuitem->getRouteName() ) { print 'active'; }
tất cả trên quan điểm của bạn có vẻ ngu ngốc. Sau đó thêm tất cả các dấu vết hoạt động gây phiền nhiễu nếu đó là một sự phình to thực sự. Xử lý rằng trước khi chế độ xem được hiển thị và đặt cờ theo dõi hoạt động thành đúng trông có vẻ rất xấu theo cách tôi biết (một hướng dẫn vòng lặp trên tất cả trẻ em lặp lại trên tất cả trẻ em, ...)
Câu hỏi của tôi là:
Có một mô hình hoặc một cách thông minh để làm cho sạch hơn, tốt hơn, ...? Làm thế nào một người nên xử lý 'vấn đề' hoạt động?
Tôi đã nghĩ đến việc kết xuất con -> cha mẹ. Vì vậy, bắt đầu với quảng cáo ở mức sâu nhất và sau đó làm việc theo cách của tôi. Nhưng sau đó đứa trẻ biết về cha mẹ của nó nhưng cha mẹ không biết gì về con cái của họ (có vẻ kỳ lạ).