Създаването на многостепенно меню за Yii 2, кодирането е невероятно лесно

създаването

Днес ще ви кажа една тайна как да направите многостепенно меню за Yii, като вземете менюто от базата данни.

В Yii за формирането на менюто отговаря готова джаджа. И за да направите меню на няколко нива, просто трябва да нарисувате всички елементи с ръцете си. Това е добре, когато структурата на менюто е известна предварително и сте сигурни, че няма да се промени.

Но какво, ако не знаете. Или опитайте да преоткриете колелото и сами да създадете джаджа. Liyuo изтеглете готови разширения за Yii и след това ги редактирайте, за да отговарят на вашите нужди. Или използвайте моето просто решение, което извлича менюто от базата данни и го вмъква в готов уиджет за меню от Yii.

Няма да описвам как да добавя самата джаджа за показване на менюто. Тук който иска да го прави.

Ще направя петно: ще покажа пример за Yii 2

Първо показваме менюто:

И ето самите методи, които вършат цялата работа и логика:

Това е всичко. За подробности попитайте в коментарите =)

Както можете да видите, създаването на автоматично многостепенно меню не е толкова трудно.

Занимавам се с уеб програмиране от 2010 г. Имам опит с Wordpress, Opencart, CodeIgniter, Shopify. Наскоро преминах към създаване на сайтове с помощта на php frameworks Yii и Laravel с оформление на Bootstrap или Foundation и „съживяване“ на сайтове с помощта на jQuery. Проектите ми се хостват в DigitalOcean. Използвам Windows за работа. Повече подробности можете да намерите на makovkin.info

Коментари

Вече изпробвах всички методи, цялата документация, вероятно се изкачих и вашият метод свърши работата си перфектно!

Благодаря отново!

Но можете ли да обясните защо предаването на параметъра $parentId = 0 работи, тъй като при итерация в for цикъла той не се увеличава, а остава непроменен?

Александър Булатов, благодаря. виж. в метода viewItems мемът има рекурсия. $parentId=0 сочи към супер основния родител

администратор, разбрах.

И още един въпрос, ако нямате нищо против, имате ли някакви идеи как да подадете параметър в този код, който също да дефинира менюто, което трябва да се покаже?

Добавих този код към метода getMenuItems

И след това правя селекция с добавянето

Но дава грешка при предаване на get-параметъра.

Александър Булатов, какво става с теб?

Съжалявам, че току-що го написах. Получавам го както следва (промених имената на функциите и някои променливи):

На дисплея сега имам това

В метода viewMenuItemsTop ,

И в браузъра това съобщение

издаване на аргумент 2 за app\modules\manager\models\Choice_Menu::viewMenuItemsTop(), извикан в C:\OpenServer\domains\yii2-cms-basic.loc\modules\manager\models\Choice_Menu.php на ред 62 и дефиниран

И каквото и да правя, той все казва, че вторият аргумент липсва.

Александър Булатов, мога ли да отида на линия 62 на студиото?

Ред 62 е редът

И за да стане контекстът ясен, пълният код на метода, където този ред

)))) Е, разбира се, че го изхвърлих))) Когато ви писах, видях къде беше абсолютно глупавата грешка)

Ред 62 трябва да изглежда така:

Александър Булатов, да. всичко е точно. не достатъчно. успех. имате въпроси, моля свържете се

Незавършено меню. Трябва да научите PHP и след това да качвате

Ярослав, не може всеки да е толкова умен като теб. би било скучно и никога няма да напишете този коментар. Усъвършенстване на менюто! Пожелавам ти успех. Но не прекалявайте. В противен случай, фокусирането върху съвършенството ще ви заболи главата. Насне губете такъв ценен актив