Страницы
Вы просматриваете документацию старой версии MoonShine. Рассмотрите возможность обновления вашего проекта до MoonShine 2.x.
-
Разделы
# Основы
Можно создавать свои пустые страницы на основе blade view и UI components , стилизовать по своему, а также организовывать какую-то логику.
use Illuminate\Support\ServiceProvider;use MoonShine\Menu\MenuItem;use MoonShine\MoonShine;use MoonShine\Resources\CustomPage; class MoonShineServiceProvider extends ServiceProvider{ public function boot(): void { app(MoonShine::class)->menu([ MenuItem::make( 'Page title', CustomPage::make('Page title', 'slug', 'view', fn() => []) ) ]); }}
Первый аргумент - заголовок страницы.
Второй аргумент - slug страницы для формирования url.
Третий аргумент - ваша кастомная blade view, которая располагается в resources/views.
Четвертый аргумент - данные, необходимые для view.
Можно использовать blade components
у которых есть класс обработчик, чтобы добавить свою логику.
# Без заголовка
Иногда не требуется вывод заголовка на кастомной странице, поэтому его можно скрыть используя метод withoutTitle
.
use Illuminate\Support\ServiceProvider;use MoonShine\Menu\MenuItem;use MoonShine\MoonShine;use MoonShine\Resources\CustomPage; class MoonShineServiceProvider extends ServiceProvider{ public function boot(): void { app(MoonShine::class)->menu([ MenuItem::make( 'Page title', CustomPage::make('Page title', 'slug', 'view', fn() => []) ->withoutTitle() ) ]); }}
# Layout
Можно использовать кастомный layout
, для этого необходимо указать путь до него в соответствующем методе.
use Illuminate\Support\ServiceProvider;use MoonShine\Menu\MenuItem;use MoonShine\MoonShine;use MoonShine\Resources\CustomPage; class MoonShineServiceProvider extends ServiceProvider{ public function boot(): void { app(MoonShine::class)->menu([ MenuItem::make( 'Page title', CustomPage::make('Page title', 'slug', 'view', fn() => []) ->layout('path') ) ]); }}
# class CustomPage
Страницы можно создавать через класс, для этого достаточно выполнить команду:
php artisan moonshine:page ExamplePage
В результате будет создан ExamplePage
класс, который будет основой кастомной страницы.
Располагается он по умолчанию в директории app/MoonShine/Pages
.
При выполнении команды можно сразу задать для вашей страницы алиас, заголовок и blade шаблон.
php artisan moonshine:page ExamplePage --alias="example" --title="Example Page" --view="pages.example"
После создания страницы, ее можно добавить в меню.
use Illuminate\Support\ServiceProvider;use MoonShine\Pages\ExamplePage; class MoonShineServiceProvider extends ServiceProvider{ public function boot(): void { app(MoonShine::class)->menu([ MenuItem::make('Example', new ExamplePage()) ]); }}