Layers for grouping
Accordion
Accordions are useful when you want to switch between hiding and displaying a lot of content:
Accordions support short syntax by calling a static method, which does not require creating a separate class:
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(),
]),
],
]),
];
}
Keys will be used as headers.
Please note that you can specify the lowercase name of the class as values:
public function layout(): array
{
return [
Layout::accordion([
'Personal Information' => PersonalInformationRow::class,
'Billing Address' => BillingAddressRow::class,
]),
];
}
Columns
Columns are useful when you need to group content.
Columns support short syntax by calling a static method, which does not require creating a separate class:
use Orchid\Support\Facades\Layout;
public function layout(): array
{
return [
Layout::columns([
TableExample::class,
RowExample::class,
]),
];
}
Drop-down list
public function layout(): array
{
return [
Layout::collapse([
Input::make('name')
->type('text')
->title('Name Articles')
])->label('More'),
];
}
Selection
To group filters, reset them and apply them, there is a separate layer Selection
, in which they are indicated.
To create, run the command:
php artisan orchid:selection MySelection
Class Example:
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
];
}
}
Tabs
Tabs group content and help with navigation. Useful when you want to switch between hiding and displaying a lot of content:
Tabs support short syntax by calling a static method, which does not require creating a separate 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(),
]),
],
]),
];
}
Keys will be used as headers.
Please note that you can specify the lowercase name of the class as values:
public function layout(): array
{
return [
Layout::tabs([
'Personal Information' => PersonalInformationRow::class,
'Billing Address' => BillingAddressRow::class,
]),
];
}