# Sidebar
# Visión general
Los elementos que aparerán en la barra de navegación lateral y su orden y agrupación se definen en el archivo app/Backoffice/Sidebar.php
.
namespace App\Backoffice;
use App\Backoffice\Sections\Users;
use Zeus\Backoffice\Sidebar\SidebarSection;
class Sidebar
{
public function items(): array
{
return [
SidebarSection::make('Usuarios', Users::class)
];
}
}
# Elementos
Tenemos varios tipos de elemento que pueden añadirse en la sidebar:
# SidebarSection
Un SidebarSection
representa un enlace a una sección (estándar o custom).
Como primer parámetro recibe el nombre que aparecerá en el sidebar.
Como segundo parámetro recibe la clase (de tipo BackofficeResourceSection
o BackofficeCustomSection
) que contiene la configuración de la sección.
return [
SidebarSection::make('Usuarios', Users::class)
];
# SidebarGroup
En ocasiones conviene agrupar algunas secciones bajo un mismo grupo.
Para ello está el elemento SidebarGroup
.
Como primer parámetro recibe el nombre que aparecerá en el sidebar, junto a una flecha para desplegar.
Como segundo parámetro recibe el prefijo que aparecerá en la URL antes del slug de sección.
Como tercer parámetro recibe un array de elementos, de tipo SidebarSection
.
return [
SidebarSection::make('Usuarios', Users::class),
SidebarGroup::make('Entidades', 'entities', [
SidebarSection::make('Grupos', Group::class),
SidebarSection::make('Marcas', Brands::class),
SidebarSection::make('Productos', Products::class)
])
];
# SidebarRedirect
Sirve para crear un enlace en el sidebar que redirija a una URL específica.
Como primer parámetro recibe el nombre que aparecerá en el sidebar.
Como segundo parámetro la URL.
Se puede especificar una URL absoluta o utilizar el helper url()
de Laravel:
return [
SidebarRedirect::make('Dashboard', url('/dashboard')),
SidebarRedirect::make('Documentación', 'https://laravel.com')),
]
Por defecto la redirección se hará sobre la misma pestaña, pero se puede usar el modificador asNewTab()
para abrirlo en una nueva pestaña:
return [
SidebarRedirect::make('Dashboard', url('/dashboard')),
SidebarRedirect::make('Documentación', 'https://laravel.com'))->asNewTab(),
]
# SidebarAction
Puede que necesites ejecutar una acción (encolar Jobs, enviar una alerta, actualizar registros en base de datos, ...) sin necesidad de tener creada una sección con una interfaz.
Para estos casos se puede usar el elemento SidebarAction
.
Como primer parámetro recibe el nombre que aparecerá en el sidebar.
Como segundo parámetro recibe una función con el código que se ejecutará:
return [
SidebarAction::make('Enviar notificación', function () {
foreach (User::query()->all() as $user) {
$user->sendNotification();
}
})
];
# Sección por defecto
Por defecto, si no se especifica, al entrar a la raíz del Backoffice, se cargará la primera sección que aparezca en el listado de secciones definido en items()
.
Puede definirse otra sección mediante el modificador default()
:
public function items(): array
{
return [
SidebarSection::make('Usuarios', Users::class),
SidebarSection::make('Marcas', Brands::class)->default(),
SidebarSection::make('Productos', Products::class)
];
}
Default en SidebarAction
El tipo de elemento SidebarAction
no es compatible con el modificador default
debido a que este tipo de elemento es usado para ejecutar un código y retornar a la sección anterior y carece de una sección con interfaz.