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?
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;
}
Just use a blade partial to construct your menu, loop through the three and it is done.
Please or to participate in this conversation.