In each menu item I need to display the number of items contained inside. For example:
Users (22)
Posts (57)
Categories (14)
Cities (92)
Tried to do something like this:
App/View/Composers/AddCountOfModels.php:
namespace App\View\Composers;
use Illuminate\View\View;
use App\User;
use App\Post;
use App\Category;
use App\City;
class AddCountOfModels
{
public function compose(View $view)
{
$view->with('count_of', [
'users' => User::count(),
'posts' => Post::count(),
'categories' => Category::count(),
'cities' => City::count(),
]);
}
}
App/Providers/AppServiceProvider.php:
namespace App\Providers;
use App\View\Composers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
$this->app['view']->composer('_layouts.backend', Composers\AddCountOfModels::class);
}
}
...
menu.blade.php:
<ul class="sidebar-menu">
<li class="header">Menu</li>
<li class="menu-item">Users ({{ $count_of['users'] }})</li>
<li class="menu-item">Posts ({{ $count_of['posts'] }})</li>
<li class="menu-item">Categories ({{ $count_of['categories'] }})</li>
<li class="menu-item">Cities ({{ $count_of['cities'] }})</li>
</ul>
But in first $count_of not passed to the View. And it looks like a clumsy because models can be much more.
Please help find a more beautiful solution.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire