รูปแบบการสร้างเมนู
ฉันมีปัญหาในการจัดการกับเมนูที่ไม่ได้ใช้ในการกำหนดเส้นทาง ฉันมาจาก Drupal ที่ระบบเมนูจัดการการกำหนดเส้นทางเช่นกัน ดังนั้นการตั้งค่าสถานะที่ใช้งานและสถานะเส้นทางที่ใช้งานจะถูกจัดการโดยเส้นทาง (ที่ทำหน้าที่เป็นระบบการแสดงผลเมนูเช่นกัน) ตอนนี้กรอบ PHP จำนวนมากมีคลาสเราเตอร์ที่จัดการการกำหนดเส้นทาง ดูเหมือนจะเป็นการแยกที่ดีเนื่องจากเมนูไม่ควรระวัง POST || ตัวเลือก || ... คำขอ แต่เมื่อเขียนส่วนหน้าฉันพบว่าตัวเองเขียนโค้ดเมนูยาก หรือเก็บทุกอย่างใน DB และส่งค่าเหล่านั้นไปยังมุมมอง สิ่งที่ฉันไม่ชอบคือวิธีนี้คือคุณกำลังสร้างสำเนาของสิ่งที่คุณเขียนไว้ในเราเตอร์ แต่ตอนนี้ใช้คลาสเมนู ตัวอย่าง: Route::get('/somewhere','routename.somewhere','showStuffController'); Route::post('/somewhere','routename.somewhere','saveStuffController'); Menu::add('label.somewhere','routename.somewhere'); คุณกำลังแยกข้อกังวลที่นี่เพื่อที่ดี แต่เมนูขึ้นอยู่อย่างมากในเส้นทางเพื่อตั้งค่าสถานะการใช้งาน เมนูจะต้องรู้เกี่ยวกับลำดับชั้นเพื่อกำหนดเส้นทางการใช้งาน ใช่แล้วการตั้งค่าเทรลแอคทีฟและคลาสสถานะแอคทีฟเป็นเรื่องของมุมมอง แต่มี if ( Route::currentName() === $menuitem->getRouteName() ) { print 'active'; } ทุกมุมมองของคุณดูโง่ ถ้าอย่างนั้นก็ให้เพิ่มแอคทีฟเทรลที่น่ารำคาญหากมันเป็นของจริง การจัดการสิ่งนั้นก่อนที่ภาพจะเรนเดอร์และตั้งค่าสถานะแอคทีฟเทรลให้เป็นจริงเพียง แต่ดูน่าเกลียดในแบบที่ฉันรู้ คำถามของฉันคือ: มีรูปแบบหรือวิธีที่ชาญฉลาดในการทำความสะอาดนี้ดีกว่า ... ? หนึ่งควรจัดการ …