1

laravel プロジェクトの管理サイドバーで、パーミッションとロールに zizaco/entrust パッケージを使用しているという問題に直面しています。管理者としてログインすると、デバッガ バーに 134 個のクエリが呼び出され、15.27 MB のメモリ使用量が表示されます。

スクリーンショット

ユーザー許可をチェックするサイドバーのいくつかの行にコメントすると、134 MB から 57 MB に、15.27 MB から 13.54 MB に減少しました。

Redisにアクセス許可をキャッシュしたことに注意してください。これが私のコードです。クエリとメモリ使用量を減らす方法です。

<ul class="navigation navigation-main navigation-accordion">
<li><a href="{{ url('admin') }}"><i class="icon-home4"></i> <span>Dashboard</span></a></li>

@foreach($admin_side_menu as $pers)
    @ability(['owner','admin'], $pers->name)
        <li class="{{ (strpos( $currnt_page, strtolower($pers->as)) !== false) ? "active" : "" }}">
            <a {!! count($pers->children) > 0 ? 'class="has-ul"' : '' !!} href="{{ url(config('app.admin_prefix') . '/' . $pers->route) }}">{!! $pers->icon != null ? '<i class="'.$pers->icon.'"></i>' : '<i class="icon-home4"></i>' !!} <span>{{ $pers->display_name }}</span></a>
            @if (count($pers->children) > 0)
                <ul>
                    @foreach($pers->children->where('appear', '1') as $subpers)
                        @ability(['owner','admin'], $subpers->name)
                            <li class="{{ ($currnt_page == $subpers->as) ? "active" : "" }}"><a href="{{ url(config('app.admin_prefix') . '/' . $subpers->route) }}">{{ $subpers->display_name }}</a></li>
                        @endability
                    @endforeach
                </ul>
            @endif
        </li>
    @endability
@endforeach

私がコメントするとき:

@ability(['owner','admin'], $pers->name)
@ability(['owner','admin'], $subpers->name)
@endability
@endability

クエリの呼び出しとメモリの使用量は減りましたが、もっと欲しいです。

4

1 に答える 1