Laravel: Где хранить массив данных, передаваемых для просмотра? - PullRequest
1 голос
/ 19 марта 2020

Я начал изучать laravel несколько дней go и столкнулся с новой дилеммой ie :) Мне нужно создать несколько массивов данных, которые позже будут переданы в представления.

Для пример:

$items = [
        'dashboard' => [
            'class' => 'icon fa fas fa-home',
            'route' => 'admin.dashboard.index'
        ],
        'pages' => [
            'class' => 'icon fa far fa-file',
            'route' => 'admin.pages.index',
            'items' => [
                'list' => [
                    'route' => 'admin.pages.index',
                ],
                'create' => [
                    'route' => 'admin.pages.create',
                ],
                'categories' => [
                    'route' => 'admin.pages.categories.index',
                ],
            ],
        ],
        'posts' => [
            'class' => 'icon fa fas fa-book',
            'route' => 'admin.posts.index',
            'items' => [
                'list' => [
                    'route' => 'admin.posts.index',
                ],
                'create' => [
                    'route' => 'admin.posts.create',
                ],
                'categories' => [
                    'route' => 'admin.posts.categories.index',
                ],
            ],
        ],
        'users' => [
            'class' => 'icon fa fas fa-user-circle',
            'route' => 'admin.users.index',
            'items' => [
                'list' => [
                    'route' => 'admin.users.index'
                ],
                'create' => [
                    'route' => 'admin.users.create'
                ],
                'roles' => [
                    'route' => 'admin.users.roles.index'
                ],
            ]
        ],
        'appearance' => [
            'class' => 'icon fa fas fa-columns',
            'route' => 'admin.dashboard.index',
            'items' => [
                'menus' => [
                    'route' => 'admin.menus.index'
                ],
                'widgets' => [
                    'route' => 'admin.dashboard.index'
                ],
                'theme' => [
                    'route' => 'admin.dashboard.index'
                ],
            ]
        ],
        'addons' => [
            'class' => 'icon fa fas fa-plug',
            'route' => 'admin.dashboard.index',
            'items' => [
                'modules' => [
                    'route' => 'admin.modules.index',
                ],
                'widgets' => [
                    'route' => 'admin.dashboard.index',
                ],
                'store' => [
                    'route' => 'admin.dashboard.index',
                ],
            ]
        ],
        'settings' => [
            'class' => 'icon fa fas fa-cogs',
            'route' => 'admin.dashboard.index',
            'items' => [
                'general' => [
                    'route' => 'admin.dashboard.index',
                ],
                'seo' => [
                    'route' => 'admin.dashboard.index',
                ],
                'mail' => [
                    'route' => 'admin.dashboard.index',
                ],
                'logs' => [
                    'route' => 'admin.settings.logs.index',
                ],
            ]
        ]
    ];

, который будет позже визуализирован в представлении боковой панели:

<ul class="sidebar-list">
        @foreach($items as $name => $data)
            <li class="sidebar-list-item">
                <a href="{{ route($data['route']) }}">
                    <div class="{{ $data['class'] }}"></div>
                    {{ __('admin/menu-items.'.$name) }}
                </a>

                @if (!empty($data['items']))
                    <ul class="sidebar-sub-list">
                        @foreach($data['items'] as $item_name => $item_data)
                           <li class="sidebar-list-item"><a href="{{ route($item_data['route']) }}">{{ __('admin/menu-items.'.$name.'_items.'.$item_name) }}</a></li>
                        @endforeach
                    </ul>
                @endif
            </li>    
        @endforeach
    </ul>

Вопрос в том, где было бы лучшее место для размещения подобных вещей, чтобы не испортить мои контроллеры , взгляды et c? Мне нужны эти данные в виде массива, так как я sh могу легко переопределить их с помощью esemve / hook Hooks. Я предполагаю, что составители представлений не очень хорошая идея, если я хочу использовать этот точный массив только в одном представлении?

Заранее спасибо:]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...