📜  如何在侧边栏活动菜单动态刀片中做 laravel - PHP (1)

📅  最后修改于: 2023-12-03 14:52:54.022000             🧑  作者: Mango

如何在侧边栏活动菜单动态刀片中做 Laravel - PHP

在 Laravel 应用程序中,常常需要使用动态的侧边栏活动菜单,以及动态的刀片来实现不同页面的展示。本文将介绍如何在 Laravel - PHP 中利用 Blade 模板引擎来实现这一功能。

步骤一:创建动态刀片

首先,我们需要在 Laravel 应用程序中创建动态刀片。具体步骤如下:

  1. resources/views 目录下创建一个名为 partials 的文件夹;
  2. partials 文件夹中创建一个名为 sidebar.blade.php 的文件;
  3. sidebar.blade.php 文件中添加如下内容:
<ul class="sidebar-menu">
    @foreach ($menus as $menu)
    <li class="{{ Request::is($menu['route']) ? 'active' : '' }}">
        <a href="{{ route($menu['route']) }}">
            <i class="{{ $menu['icon'] }}"></i>
            <span>{{ $menu['title'] }}</span>
        </a>
    </li>
    @endforeach
</ul>

上述代码主要用于设置侧边栏菜单的 HTML 结构。其中,$menus 是一个数组,包含了所有的菜单项。每个菜单项都包含了如下属性:

  • title:菜单项标题;
  • icon:菜单项图标;
  • route:菜单项对应的路由名称。

通过上述代码,我们可以根据当前用户访问的页面动态设置侧边栏菜单项的激活状态。如果当前页面的路由名称匹配当前菜单项的路由名称,则设置该菜单项为激活状态。

步骤二:在视图中调用动态刀片

接下来,我们需要在视图中调用刚刚创建的侧边栏刀片。具体步骤如下:

  1. 在视图中添加如下代码:
@include('partials.sidebar', ['menus' => $menus])

上述代码会调用 partials/sidebar.blade.php 中的代码,并将 $menus 传递给该刀片。

  1. 在控制器中获取 $menus

在控制器中获取所有菜单项的数据,并将其传递给视图:

$menus = [
    [
        'title' => 'Dashboard',
        'icon' => 'fa fa-dashboard',
        'route' => 'dashboard.index',
    ],
    [
        'title' => 'Users',
        'icon' => 'fa fa-users',
        'route' => 'users.index',
    ],
    [
        'title' => 'Roles',
        'icon' => 'fa fa-lock',
        'route' => 'roles.index',
    ],
];
return view('dashboard.index', compact('menus'));

上述代码会返回一个包含所有菜单项数据的数组,并将其传递给视图。

步骤三:设置动态刀片的激活状态

最后,我们需要在路由文件中设置每个页面对应的路由名称,以便在动态刀片中设置激活状态。具体步骤如下:

Route::get('/dashboard', 'DashboardController@index')->name('dashboard.index');
Route::get('/users', 'UserController@index')->name('users.index');
Route::get('/roles', 'RoleController@index')->name('roles.index');

上述代码会设置每个页面对应的路由名称,并将该名称传递给动态刀片中。如果当前页面的路由名称匹配当前菜单项的路由名称,则设置该菜单项为激活状态。

至此,我们已经成功地实现了在侧边栏活动菜单动态刀片中动态生成菜单项的功能。通过上述步骤,您可以在 Laravel 应用程序中轻松添加动态刀片,并实现不同页面的展示。