دسته بندی: filament

ساخت فرم در Filament و نمایش داده ها

در این آموزش یاد می‌گیریم چگونه با استفاده از Laravel و Filament یک فرم مدیریتی ایجاد کنیم که: داخل پنل مدیریت نمایش داده شود اطلاعات را در پایگاه داده ذخیره کند داده‌های ثبت‌شده را به صورت جدول (CRUD کامل) نمایش دهد این روش، استانداردترین و سریع‌ترین راه ساخت فرم‌های مدیریتی در Filament 3 است. پیش‌نیازها قبل از شروع، فرض می‌کنیم موارد زیر از قبل آماده هستند: Laravel و Filament 3 به‌درستی نصب شده‌اند پنل مدیریت از مسیر /admin در دسترس است اتصال دیتابیس برقرار شده و migrationها اجرا شده‌اند هدف نهایی در پایان این آموزش، یک فرم ثبت پست خواهیم داشت با فیلدهای زیر: عنوان (Title) توضیحات (Body) وضعیت فعال / غیرفعال (is_active) و این داده‌ها: در دیتابیس ذخیره می‌شوند در پنل مدیریت به صورت جدول قابل مشاهده، ویرایش و حذف هستند مرحله ۱: ساخت Model و Migration ابتدا یک مدل به همراه migration ایجاد می‌کنیم: php artisan make:model Post -m سپس فایل migration ساخته‌شده در مسیر زیر را ویرایش می‌کنیم: database/migrations/xxxx_create_posts_table.php Schema::create(‘posts’, function (Blueprint $table) { $table->id(); $table->string(‘title’); $table->text(‘body’); $table->boolean(‘is_active’)->default(true); $table->timestamps(); }); در نهایت migration را اجرا می‌کنیم: php artisan migrate مرحله ۲: ساخت Resource در Filament در Filament، هر Resource به‌صورت خودکار یک CRUD کامل (فرم + جدول) ایجاد می‌کند. php artisan make:filament-resource Post پس از اجرای این دستور، ساختار زیر ایجاد می‌شود: app/Filament/Resources/ ├── PostResource.php └── PostResource/ └── Pages/ ├── CreatePost.php ├── EditPost.php └── ListPosts.php مرحله ۳: تعریف فرم ثبت اطلاعات فایل زیر را باز کنید: app/Filament/Resources/PostResource.php در متد form()، فیلدهای فرم را تعریف می‌کنیم: use Filament\Forms; use Filament\Forms\Form; public static function form(Form $form): Form { return $form->schema([ Forms\Components\TextInput::make(‘title’) ->label(‘عنوان’) ->required() ->maxLength(255), Forms\Components\Textarea::make(‘body’) ->label(‘توضیحات’) ->required(), Forms\Components\Toggle::make(‘is_active’) ->label(‘فعال؟’) ->default(true), ]); } این فرم به‌صورت خودکار در صفحه Create و Edit پنل مدیریت استفاده می‌شود. مرحله ۴: تعریف جدول نمایش داده‌ها در همان فایل، متد table() را برای نمایش […]