Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Pawlooo's avatar

Bootstrap navbar with dropdown

Hello,

I want to ask you guys about parenting bootstrap navbar dynamic menu.

I have already done database "navbar" with name, url and parent_id. How Can i get all links with dropdown structure?

0 likes
4 replies
Pawlooo's avatar

Hi, thanks for tutorial but i want to create own functions. Can You look at my code? Working but without children items :(

    private static function mapTree($dataset, $parent = 0)
    {
        $tree = array();

        foreach ($dataset as $id => $node)
        {
            if ($node->parent_id != $parent) continue;
            $node->children = self::mapTree($dataset, $node->id);
            $tree[$id] = $node;
        }

        return $tree;
    }


    /**
     * GenerateMenu
     */
    private static function prepareMenu($tree)
    {
        $data = '<ul class="nav navbar-nav">';

        foreach ($tree as $item)
        {
            $data .= '<li><a href="' . $item->url . '">' . $item->title . '</a></li>';

            if (count($item->children) > 0)
            {
                self::prepareMenu($item->children);
            }
        }

        $data .= '</ul>';

        return $data;
    }

    /**
     * Create menu
     */
    public static function generateMenu()
    {
        $urls = parent::all();
        $tree = self::mapTree($urls);
        $data = self::prepareMenu($tree);

        return $data;
    }
pmall's avatar

Just use a blade partial to construct your menu, loop through the three and it is done.

Please or to participate in this conversation.