"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Creación de paneles de administración sólidos con Filament y Laravel: una guía paso a paso

Creación de paneles de administración sólidos con Filament y Laravel: una guía paso a paso

Publicado el 2024-11-08
Navegar:398

Building Robust Admin Panels with Filament and Laravel: A Step-by-Step Guide

Laravel es un potente marco PHP que proporciona una base sólida para desarrollar aplicaciones web. Filament es un elegante panel de administración y creador de formularios de código abierto para Laravel que simplifica la creación de interfaces de administración. Esta guía lo guiará en la creación de un panel de administración sólido utilizando las últimas versiones de Filament y Laravel.

Laravel SaaS Starter: comience su próximo Saas en un día, no en semanas
¡Inicia tu próximo proyecto de Laravel Saas en solo un día, no en semanas! Con funciones ya creadas que todo saas necesita
www.laravelsaas.tienda

Requisitos previos
Antes de comenzar, asegúrese de tener lo siguiente instalado en su máquina de desarrollo:

PHP >= 8.0
Compositor
Node.js y NPM
MySQL o cualquier otra base de datos soportada por Laravel

Paso 1: Configurar un nuevo proyecto de Laravel

Primero, crea un nuevo proyecto de Laravel usando Composer:

composer create-project --prefer-dist laravel/laravel filament-admin
cd filament-admin

A continuación, configure las variables de entorno. Cambie el nombre del archivo .env.example a .env y actualice la configuración de la base de datos con sus credenciales:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=filament_db
DB_USERNAME=root
DB_PASSWORD=your_password

Ejecute el siguiente comando para generar una clave de aplicación y migrar las tablas predeterminadas de Laravel:

php artisan key:generate
php artisan migrate

Paso 2: Instalación del filamento

Para instalar Filament, use Composer:

composer require filament/filament

A continuación, publique los activos y la configuración del filamento:

php artisan filament:install

Paso 3: Configurar la autenticación

Filament requiere autenticación para administrar el acceso al panel de administración. Laravel proporciona un andamiaje de autenticación integrado. Usemos Laravel Breeze para simplificar:

composer require laravel/breeze --dev
php artisan breeze:install

Sigue las indicaciones para seleccionar tu opción de interfaz preferida (Blade, Vue, React). Para este ejemplo, usaremos Blade:

php artisan migrate
npm install
npm run dev

Asegúrate de tener un usuario con el que iniciar sesión. Puedes usar Laravel Tinker para crear uno:

php artisan tinker

>>> \App\Models\User::factory()->create(['email' => '[email protected]']);

Paso 4: Configurar Filamento

Actualice el modelo de Usuario para implementar el contrato Filament HasFilamentRoles si está utilizando roles o permisos. Por ahora, nos aseguraremos de que cualquier usuario autenticado pueda acceder a Filament.

In app/Providers/FilamentServiceProvider.php, define the authorization logic:

use Filament\Facades\Filament;

public function boot()
{
    Filament::serving(function () {
        Filament::registerUserMenuItems([
            'account' => MenuItem::make()
                ->label('My Account')
                ->url(route('filament.resources.users.edit', ['record' => auth()->user()]))
                ->icon('heroicon-o-user'),
        ]);
    });

    Filament::registerPages([
        // Register your custom pages here
    ]);

    Filament::registerResources([
        // Register your custom resources here
    ]);
}

protected function gate()
{
    Gate::define('viewFilament', function ($user) {
        return in_array($user->email, [
            '[email protected]',
        ]);
    });
}

Paso 5: Crear recursos

Los recursos de filamentos son modelos Eloquent con interfaces CRUD. Creemos un recurso para administrar un modelo de publicación.

Generar el modelo, migración y fábrica:

php artisan make:model Post -mf

Definir los campos en el archivo de migración:

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('content');
        $table->timestamps();
    });
}

Ejecutar la migración:

php artisan migrate

A continuación, genere un recurso de filamento:

php artisan make:filament-resource Post

Este comando crea los archivos necesarios para el recurso. Abra app/Filament/Resources/PostResource.php y defina los campos de recursos:

use Filament\Resources\Pages\Page;
use Filament\Resources\Pages\CreateRecord;
use Filament\Resources\Pages\EditRecord;
use Filament\Resources\Pages\ListRecords;
use Filament\Resources\Forms;
use Filament\Resources\Tables;
use Filament\Resources\Forms\Components\TextInput;
use Filament\Resources\Forms\Components\Textarea;
use Filament\Resources\Tables\Columns\TextColumn;

class PostResource extends Resource
{
    protected static ?string $model = Post::class;

    protected static ?string $navigationIcon = 'heroicon-o-collection';

    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                TextInput::make('title')
                    ->required()
                    ->maxLength(255),
                Textarea::make('content')
                    ->required(),
            ]);
    }

    public static function table(Table $table): Table
    {
        return $table
            ->columns([
                TextColumn::make('title'),
                TextColumn::make('content')
                    ->limit(50),
                TextColumn::make('created_at')
                    ->dateTime(),
            ]);
    }

    public static function getPages(): array
    {
        return [
            'index' => Pages\ListRecords::route('/'),
            'create' => Pages\CreateRecord::route('/create'),
            'edit' => Pages\EditRecord::route('/{record}/edit'),
        ];
    }
}

Paso 6: Agregar navegación

Agregue el recurso a la barra lateral de Filament. Abra app/Providers/FilamentServiceProvider.php y registre el recurso:

use App\Filament\Resources\PostResource;

public function register()
{
    Filament::registerResources([
        PostResource::class,
    ]);
}

Paso 7: Personalización del filamento

El filamento es altamente personalizable. Puede cambiar el tema, los componentes y más. Por ejemplo, para personalizar el color primario, actualice el archivo config/filament.php:

'brand' => [
    'primary' => '#1d4ed8',
],

También puedes crear páginas, widgets y componentes de formulario personalizados siguiendo la documentación: Filament Documentation.

Laravel SaaS Starter: comience su próximo Saas en un día, no en semanas
¡Inicia tu próximo proyecto de Laravel Saas en solo un día, no en semanas! Con funciones ya creadas que todo saas necesita
www.laravelsaas.tienda

Conclusión

En esta guía, explicamos cómo configurar un nuevo proyecto de Laravel, instalar Filament, configurar la autenticación, crear recursos y personalizar el panel de administración de Filament. Esto debería brindarle una base sólida para crear paneles de administración sólidos utilizando Filament y Laravel. Para funciones y personalizaciones más avanzadas, consulte la documentación oficial y explore las capacidades de Filament.

¡Feliz codificación!

Declaración de liberación Este artículo se reproduce en: https://dev.to/martintonev/building-robust-admin-panels-with-filament-and-laravel-a-step-by-step-guide-2pn3?1 Si hay alguna infracción , comuníquese con Study_golang @ 163.com eliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3