# Config
use MoonShine\Exceptions\MoonShineNotFoundException; use MoonShine\Forms\LoginForm;use MoonShine\Http\Middleware\Authenticate;use MoonShine\Http\Middleware\SecurityHeadersMiddleware;use MoonShine\Models\MoonshineUser;use MoonShine\MoonShineLayout;use MoonShine\Pages\ProfilePage; return [ # Директория, где располагаются ресурсы 'dir' => 'app/MoonShine', # При изменении директории необходимо поменять и namespace согласно psr-4 'namespace' => 'App\MoonShine', # Заголовок админ-панели 'title' => env('MOONSHINE_TITLE', 'MoonShine'), # Вы можете изменить логотип, указав путь (пример - /images/logo.svg) 'logo' => env('MOONSHINE_LOGO'), 'logo_small' => env('MOONSHINE_LOGO_SMALL'), 'route' => [ # Если домен отличается от домена сайта 'domain' => env('MOONSHINE_URL', ''), # По какому пути будет доступна панель управления # Если оставить значение пустым, то панель будет доступна от / 'prefix' => env('MOONSHINE_ROUTE_PREFIX', 'admin'), # Имя роута главной страницы 'index' => 'moonshine.index', # Префикс формирования url для страниц 'single_page_prefix' => 'page', # Группы middlewares в панели 'middlewares' => [ SecurityHeadersMiddleware::class, ], # Можно поменять исключение для 404 (для ModelNotFound нужно реализовать самостоятельно) 'notFoundHandler' => MoonShineNotFoundException::class, ], # Если вы хотите заменить MoonshineUser на свою модель, то можно отключить дефолтные миграции 'use_migrations' => true, # Вкл/Выкл уведомления 'use_notifications' => true, # Вкл/Выкл переключатель светлой/тёмной темы 'use_theme_switcher' => true, # Class для рендеринга основного шаблона страницы 'layout' => MoonShineLayout::class, # Filesystem Disk по умолчанию 'disk' => 'public', 'disk_options' => [], 'cache' => 'file', 'assets' => [ 'js' => [ 'script_attributes' => [ 'defer', ] ], 'css' => [ 'link_attributes' => [ 'rel' => 'stylesheet', ] ] ], 'forms' => [ # форма аутентификации 'login' => LoginForm::class ], 'pages' => [ # Страница дашборда, дефолтная страница создается при установке MoonShine 'dashboard' => App\MoonShine\Pages\Dashboard::class, # Страница профиля 'profile' => ProfilePage::class ], # Импорт и экспорт по умолчанию у ModelResource 'model_resources' => [ 'default_with_import' => true, 'default_with_export' => true, ], 'auth' => [ # Вкл/Выкл аутентификацию. Если false, то панель будет доступна всем 'enable' => true, 'middleware' => Authenticate::class, 'fields' => [ 'username' => 'email', 'password' => 'password', 'name' => 'name', 'avatar' => 'avatar', ], # Если используете собственный guard, provider 'guard' => 'moonshine', 'guards' => [ 'moonshine' => [ 'driver' => 'session', 'provider' => 'moonshine', ], ], 'providers' => [ 'moonshine' => [ 'driver' => 'eloquent', 'model' => MoonshineUser::class, ], ], ], # Возможные варианты переводов 'locales' => [ 'en', 'ru', ], 'global_search' => [ // User::class ], 'tinymce' => [ # Роут файлового менеджера, подробности в разделе Поля 'file_manager' => false, 'token' => env('MOONSHINE_TINYMCE_TOKEN', ''), 'version' => env('MOONSHINE_TINYMCE_VERSION', '6'), ], # Аутентификация через соц. сети и socialite, перечисляем драйверы и указываем логотип 'socialite' => [ // 'driver' => 'path_to_image_for_button' ], ];
Для базового использования достаточно отредактировать параметры указанные ниже:
// ... return [ // ... 'title' => env('MOONSHINE_TITLE', 'MoonShine'), 'logo' => env('MOONSHINE_LOGO', ''), 'logo_small' => env('MOONSHINE_LOGO_SMALL'), 'route' => [ 'prefix' => env('MOONSHINE_ROUTE_PREFIX', 'admin'), ], // ...];
# Главная страница
Если необходимо переопределить главную страницу в админ-панели MoonShine,
это можно сделать воспользовавшись статическим методом home()
класса MoonShine
в сервис провайдере MoonShineServiceProvider
.
home(string|Closure $homeClass)
use App\MoonShine\Pages\CustomPage;use App\MoonShine\Resources\PostResource;use MoonShine\Providers\MoonShineApplicationServiceProvider;use MoonShine\MoonShine; class MoonShineServiceProvider extends MoonShineApplicationServiceProvider{ public function register(): void { moonshine()->home(CustomPage::class); // or moonshine()->home(PostResource::class); // or moonshine()->home(function () { return PostResource::class; }); } //... }