Макеты группировки
Suggest editАккордеон
Аккордеоны полезны, когда Вы хотите переключаться между скрытием и отображением большого количества контента:
Аккордеоны поддерживают короткий синтаксис через вызов статического метода, что не требует создания отдельного класса:
use Orchid\Support\Facades\Layout;
public function layout(): array
{
return [
Layout::accordion([
'Personal Information' => [
Layout::rows([
Input::make('user.name')
->type('text')
->required()
->title('Name')
->placeholder('Name'),
Input::make('user.email')
->type('email')
->required()
->title('Email')
->placeholder('Email'),
]),
],
'Billing Address' => [
Layout::rows([
Input::make('address')
->type('text')
->required()
->title('Адрес доставки')
->placeholder('Ул. Ленина дом 14 оф.162'),
]),
],
]),
];
}
Ключи будут использованы в качестве заголовков.
Обратите внимание, что Вы можете указывать в качестве значений и имя класса в нижнем регистре:
public function layout(): array
{
return [
Layout::accordion([
'Personal Information' => PersonalInformationRow::class,
'Billing Address' => BillingAddressRow::class,
]),
];
}
Колонки
Колонки полезны, когда Вам необходимо сгруппировать контент.
Колонки поддерживают короткий синтаксис через вызов статического метода, что не требует создания отдельного класса:
use Orchid\Support\Facades\Layout;
public function layout(): array
{
return [
Layout::columns([
TableExample::class,
RowExample::class,
]),
];
}
Набор фильтров
Для группировки фильтров, их сброса и применения, существует отдельный слой Selection
, в котором они указываются.
Для создания исполните команду:
php artisan orchid:selection MySelection
Пример класса:
namespace App\Orchid\Layouts;
use Orchid\Platform\Filters\Filter;
use Orchid\Press\Http\Filters\CreatedFilter;
use Orchid\Press\Http\Filters\SearchFilter;
use Orchid\Screen\Layouts\Selection;
class MySelection extends Selection
{
/**
* @return Filter[]
*/
public function filters(): array
{
return [
SearchFilter::class,
CreatedFilter::class
];
}
}
Табы
Табы группируют контент и помогают в навигации. Полезны, когда Вы хотите переключаться между скрытием и отображением большого количества контента:
Табы поддерживают короткий синтаксис через вызов статического метода, что не требует создания отдельного класса:
use Orchid\Support\Facades\Layout;
public function layout(): array
{
return [
Layout::tabs([
'Personal Information' => [
Layout::rows([
Input::make('user.name')
->type('text')
->required()
->title('Name')
->placeholder('Name'),
Input::make('user.email')
->type('email')
->required()
->title('Email')
->placeholder('Email'),
]),
],
'Billing Address' => [
Layout::rows([
Input::make('address')
->type('text')
->required()
->title('Адрес доставки')
->placeholder('Ул. Ленина дом 14 оф.162'),
]),
],
]),
];
}
Ключи будут использованы в качестве заголовков.
Обратите внимание, что Вы можете указывать в качестве значений и строчное имя класса:
public function layout(): array
{
return [
Layout::tabs([
'Personal Information' => PersonalInformationRow::class,
'Billing Address' => BillingAddressRow::class,
]),
];
}
По умолчанию активной является либо первая, либо последняя активная вкладка.
сли вам нужно явно определить активную вкладку, вы можете сделать это с помощью метода ->activeTab($key)
:
public function layout(): array
{
return [
Layout::tabs([
'Personal Information' => PersonalInformationRow::class,
'Billing Address' => BillingAddressRow::class,
])->activeTab('Billing Address'),
];
}