【发布时间】:2021-04-01 06:47:31
【问题描述】:
我正在用 Laravel 8 编写一个项目。我想在左侧菜单中显示每个菜单的编号。其实我有一个解决办法。将其他模型添加到站点上的所有控件。但这不是正确的方法。有没有替代方案?
例如:
My sidebar menus:
Tools (12)
Users (10)
Settings
我需要将此代码插入到所有控件函数中
$tools_1= Tools1::all()->count();
$users = Users::all()->count();
我也把这段代码写到侧边栏了。
<li class="nav-item">
<a href="{{route('admin.x')}}" class="nav-link">
<i class="nav-icon fas fa-warehouse"></i>
<p>
Tools
<span class="badge badge-info right">{{ $tools_1 }}</span>
</p>
</a>
</li>
<li class="nav-item">
<a href="{{route('admin.y')}}" class="nav-link">
<i class="nav-icon fa fa-car"></i>
<p>
Users
<span class="badge badge-info right">{{ $users }}</span>
</p>
</a>
</li>
有没有更合乎逻辑的解决方案?
【问题讨论】:
-
旁注,不要做
::all()->count();这是将数据库表中的每条记录加载到内存中,然后计算数组元素。一个简单的::count()将执行 SQL 计数,速度更快,对性能的影响更小。话虽如此,对于 10 或 12 条记录,这微不足道,但对于较大的表,这将产生巨大的差异。
标签: laravel model-view-controller sidebar laravel-8