PHP code example of jacquestrdx123 / vue-sidebar-menu

1. Go to this page and download the library: Download jacquestrdx123/vue-sidebar-menu library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

jacquestrdx123 / vue-sidebar-menu example snippets


use JacquesTredoux\VueSidebarMenu\Services\MenuWebService;
use Inertia\Inertia;

class HandleInertiaRequests extends Middleware
{
    public $menuService;

    public function __construct(RootTemplateProvider $rootTemplateProvider)
    {
        $this->rootTemplateProvider = $rootTemplateProvider;
        $this->menuService = app(MenuWebService::class);
    }

    public function share(Request $request): array
    {
        $user = $request->user();

        return [
            ...parent::share($request),
            'ziggy' => fn () => [
                ...(new Ziggy)->toArray(),
                'location' => $request->url(),
            ],
            'menu' => $this->menuService->getMenu($request->route()?->getName(), $user),
            'favoriteMenuItems' => $this->menuService->getFavoriteMenuItems($user),
        ];
    }
}

use JacquesTredoux\VueSidebarMenu\Models\MenuGroup;
use JacquesTredoux\VueSidebarMenu\Models\MenuItem;

// Create a menu group
$group = MenuGroup::create([
    'key' => 'dashboard',
    'label' => 'Dashboard',
    'icon' => 'heroicon-o-home',
    'sort_order' => 1,
    'is_active' => true,
]);

// Create a menu item
MenuItem::create([
    'menu_group_id' => $group->id,
    'key' => 'main-dashboard',
    'label' => 'Main Dashboard',
    'icon' => 'heroicon-o-chart-bar',
    'route' => 'vue.dashboard',
    'permission_name' => 'view_any_dashboard', // Optional: 

use JacquesTredoux\VueSidebarMenu\Models\UserFavoriteMenuItem;

public function favoriteMenuItems()
{
    return $this->hasMany(UserFavoriteMenuItem::class);
}

public function getFavoriteMenuKeys()
{
    return $this->favoriteMenuItems()->pluck('menu_key')->toArray();
}

MenuItem::create([
    'icon' => 'home',  // or 'heroicon-o-home'
    // ...
]);

MenuItem::create([
    'icon' => 'mdi-home',  // Automatically converted to HomeIcon
    // ...
]);
bash
php artisan vue-sidebar-menu:install
bash
php artisan migrate