Skip to content
This repository has been archived by the owner on Jul 30, 2024. It is now read-only.

ALTAMASH80/dynamic-bootstrap-menu-laminasmvc-doctrine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dynamic-Bootstrap-Menu-LaminasMVC-Doctrine

Create dynamic menus via doctrine in Laminas MVC.

Installation without LmcRbacMvc

composer require altamash80/laminas-mvc-bootstrap-menu:"1.0.0"
composer require altamash80/dynamic-bootstrap-menu-laminasmvc-doctrine

Installation with LmcRbacMvc

composer require altamash80/laminas-mvc-bootstrap-menu:"1.1.0"
composer require altamash80/dynamic-bootstrap-menu-laminasmvc-doctrine

Dependency

  1. Doctrine
  2. Navigation
  3. Lrphpt Menu
  4. Laminas MVC(minimum)

Add Module in module config file

Add the module name in module.config.php.

return[
    'Laminas\Navigation',
    'Lrphpt',
    'LRPHPT\MenuTree',
    'Application',
];

Run the command line below to create and execute migration. To set up migration check this link.

./vendor/bin/doctrine-module migrations:diff
./vendor/bin/doctrine-module migrations:execute

Mandatory check

  1. Copy the pickletree javscript folder and paste it in public folder.
  2. Make sure you've echo $this->inlineScript() in your layout.phtml file or any layout file you're using.

Access in browser

yourhost/lrphpt-menu

Create a root menu for access as shown below.

lrphpt-menu-landing-screen

After creating the root menu, start building the actual menu items as shown in the image below.

lrphpt-menu-tree-example

lrphpt-menu-tree-example2

Usage

Add the below line in any layout.phtml file.

<?=$this->navigation('lrphpt_navigation')
                    ->bootstrapMenu()
                    ->setUlClass('navbar-nav')
                    // Optional setting to use with LmcRbac route guard.
                    //->setAuthorizationService($this->LmcRbacAuthorizationServiceHelper())
                    ; ?>

Use the below configuration first by creating a navigation factory with someother_navigation. See this link. Then write the below lines in the class file.

public function getName(){
   return 'footer-menu';
}

<?=$this->navigation('someother_navigation')
                    ->bootstrapMenu()
                    ->setUlClass('navbar-nav')
                    // Optional setting to use with LmcRbac route guard.
                    //->setAuthorizationService($this->LmcRbacAuthorizationServiceHelper())
                    ; ?>