tomatophp/filament-types

使用 FilamentPHP 的简单易用的资源在数据库中管理您的应用中的任何类型

资助包维护!
3x1io

v1.0.27 2024-09-23 15:16 UTC

README

Screenshot

Filament Types

Latest Stable Version License Downloads

使用 FilamentPHP 的简单易用的资源在数据库中管理您的应用中的任何类型

屏幕截图

Types Filters Type Col Form

安装

composer require tomatophp/filament-types

安装您的包后,请运行此命令

php artisan filament-types:install

最后,在 /app/Providers/Filament/AdminPanelProvider.php 中注册插件

->plugin(\TomatoPHP\FilamentTypes\FilamentTypesPlugin::make())

注册新类型

您可以使用配置文件 config/filament-types.php 添加新类型,或者可以使用我们的 Facade 从您的提供者注册类型

use TomatoPHP\FilamentTypes\Facades\FilamentTypes;

FilamentTypes::register([
    'types',
    'groups'
], 'accounts');

使用类型助手

您可以使用助手方法在任何地方找到任何类型以使用它

type_of(key: 'pending',for: 'notes',type: 'groups');

它将为您返回类型模型。

使用类型列

您可以在表中像这样使用类型列

use TomatoPHP\FilamentTypes\Components\TypeColumn;

TypeColumn::make('type')
->for('users')
->type('status')
->allowDescription()
->searchable(),

自动缓存

在您的 .env 文件中添加以下内容

CACHE_STORE=array
MODEL_CACHE_STORE=array

支持的缓存存储包括

+ Redis
+ MemCached
+ APC
+ Array

使用类型基本页面

您可以通过扩展基本类型页面来创建所选类型的页面

use TomatoPHP\FilamentTypes\Pages\BaseTypePage;

use TomatoPHP\FilamentTypes\Services\Contracts\Type;

class NotesGroups extends BaseTypePage
{
     public function getTitle(): string
    {
        return "Notes Groups";
    }

    public function getType(): string
    {
        return "groups";
    }

    public function getFor(): string
    {
        return "notes";
    }

    public function getBackUrl()
    {
        return ManageNotes::getUrl(); // TODO: Change the autogenerated stub
    }

    public function getTypes(): array
    {
        return [
            Type::make('todo')
                ->name([
                    "ar" => "مهام",
                    "en" => "TODO"
                ])
                ->color('#1461e3')
                ->icon('heroicon-o-list-bullet'),
            Type::make('ideas')
                ->name([
                    "ar" => "أفكار",
                    "en" => "Ideas"
                ])
                ->color('#13e0da')
                ->icon('heroicon-o-sparkles'),
            Type::make('saved')
                ->name([
                    "ar" => "محفوظ",
                    "en" => "Saved"
                ])
                ->color('#29a82e')
                ->icon('heroicon-o-arrow-down-on-square'),
        ];
    }
}

它默认不会出现在导航菜单中,但您可以通过使用此方法来更改它

public static function shouldRegisterNavigation(): bool
{
    return true;
}

使用类型组件

如果您想将类型作为包使用,我们为您创建了一个 blade 组件,使您可以在应用程序的任何地方轻松使用,如下所示

<x-tomato-type :type="$type" label="Group"/>

发布资产

您可以通过使用此命令发布配置文件

php artisan vendor:publish --tag="filament-types-config"

您可以通过使用此命令发布视图文件

php artisan vendor:publish --tag="filament-types-views"

您可以通过使用此命令发布语言文件

php artisan vendor:publish --tag="filament-types-lang"

您可以通过使用此命令发布迁移文件

php artisan vendor:publish --tag="filament-types-migrations"

其他 Filament 包

查看我们的 Awesome TomatoPHP