- Создание
- Объявление страниц в системе
- Заголовок/Подзаголовок
- Макет
- Хлебные крошки
- Псевдоним
- Быстрая страница
- Рендеринг
Вы можете создавать экземпляры страниц из классов и регистрировать их в админ-панели.
Создание
Для создания экземпляра страницы используйте статический метод make()
:
make( ?string $title = null, ?string $alias = null, ?ResourceContract $resource = null)
-title
- заголовок страницы;
-alias
- псевдоним для URL страницы;
-resource
- ресурс, к которому принадлежит страница.
use App\MoonShine\Pages\CustomPage;//... CustomPage::make('Пользовательская страница', 'custom_page')//...
Объявление страниц в системе
Для регистрации страницы в системе и сразу добавления ее ссылки в навигационное меню используйте сервис-провайдер MoonShineServiceProvider
:
namespace App\Providers; use App\MoonShine\Pages\CustomPage;use MoonShine\Providers\MoonShineApplicationServiceProvider; class MoonShineServiceProvider extends MoonShineApplicationServiceProvider{ //... protected function menu(): array { return [ MenuItem::make('Пользовательская страница', CustomPage::make('Пользовательская страница', 'custom_page')) ]; } //...}
О расширенных настройках вы можете узнать в разделе Меню.
Если вам нужно только зарегистрировать страницу в системе без добавления ее в навигационное меню, то необходимо использовать метод pages()
:
namespace App\Providers; use App\MoonShine\Pages\CustomPage;use MoonShine\Providers\MoonShineApplicationServiceProvider; class MoonShineServiceProvider extends MoonShineApplicationServiceProvider{ public function pages(): array { return [ CustomPage::make('Заголовок страницы', 'custom_page') ]; } //...}
Заголовок/Подзаголовок
Метод setTitle()
позволяет изменить заголовок страницы, а метод setSubTitle()
- подзаголовок.
setTitle(string $title)
setSubTitle(string $subtitle)
use App\MoonShine\Pages\CustomPage; //... public function pages(): array{ return [ CustomPage::make('Заголовок страницы', 'custom_page') ->setTitle('Новый заголовок') ->setSubTitle('Подзаголовок') ];} //...
Макет
Метод setLayout()
позволяет изменить шаблон Layout экземпляра страницы.
setLayout(string $layout)
use App\MoonShine\Pages\CustomPage; //... public function pages(): array{ return [ CustomPage::make('Заголовок страницы', 'custom_page') ->setLayout('custom_layouts.app') ];} //...]
Хлебные крошки
Метод setBreadcrumbs()
позволяет изменить хлебные крошки страницы.
use App\MoonShine\Pages\CustomPage; //...public function pages(): array{ return [ CustomPage::make('Заголовок страницы', 'custom_page') ->setBreadcrumbs([ '#' => $this->title() ]) ];} //...
Псевдоним
Метод alias()
позволяет изменить псевдоним для экземпляра страницы.
alias(string $alias)
use App\MoonShine\Pages\CustomPage; //... public function pages(): array{ return [ CustomPage::make('Заголовок страницы') ->alias('custom-page') ];} //...
Быстрая страница
Если вам нужно добавить страницу без создания класса, а просто указав blade-представление, рекомендуем использовать ViewPage
.
MenuItem::make( 'Пользовательская', ViewPage::make() ->setTitle('Привет') ->setLayout('custom_layout') ->setContentView('my-form', ['param' => 'value'])),
Рендеринг
Вы можете отображать быструю страницу вне MoonShine, просто вернув ее в Контроллере.
class HomeController extends Controller{ public function __invoke(Request $request): Page { $articles = Article::query() ->published() ->latest() ->take(6) ->get(); return ViewPage::make() ->setTitle('Добро пожаловать') ->setLayout('layouts.app') ->setContentView('welcome', ['articles' => $articles]); }}