tur1/laravelmodules

Laravel模块化页面创建包

v1.0.9 2024-10-02 11:03 UTC

This package is auto-updated.

Last update: 2024-10-02 11:15:45 UTC


README

tur1/laravel-modules 是一个用于通过模块化来管理大型 Laravel 应用程序的 Laravel 包。此包提供了一系列 Artisan 命令和工具,以方便地在 Laravel 应用程序中创建模块、页面和过滤器。

使用 php artisan module:create Admins 命令来生成您的第一个模块。以下结构将被生成。

Modules/
├── Admins/
    ├── Controllers/
    │   └── AdminController.php
    ├── Database/
    │   ├── factories/
    │   │   └── AdminFactory.php
    │   ├── migrations/
    │   │   └── 2024_09_16_xxxxxxx_admins_table.php
    │   └── seeders/
    │       └── AdminSeeder.php
    ├── Enums/
    │   ├── AdminGenderEnum.php
    │   └── AdminStatusEnum.php
    ├── Events/
    │   ├── AdminCreatedEvent.php
    │   ├── AdminDeletedEvent.php
    │   └── AdminUpdatedEvent.php
    ├── Exceptions/
    │   └── AdminException.php
    ├── Filters/
    │   ├── GenderFilter.php
    │   └── StatusFilter.php
    ├── Middleware/
    │   └── AdminMiddleware.php
    ├── Models/
    │   └── Admin.php
    ├── Observers/
    │   └── AdminObserver.php
    ├── Policies/
    │   └── AdminPolicy.php
    ├── Repositories/
    │   └── AdminRepository.php
    ├── Requests/
    │   ├── StoreAdminRequest.php
    │   └── UpdateAdminRequest.php
    ├── Resources/
    │   ├── AdminListResource.php
    │   └── AdminShowResource.php
    ├── Routes/
    │   └── AdminRoutes.php
    ├── Services/
    │   └── AdminService.php
    └── Traits/
        ├── AdminAttributesTrait.php
        ├── AdminRelationshipsTrait.php
        └── AdminScopesTrait.php

安装

要安装此包,请运行以下命令

composer require tur1/laravelmodules

Artisan 命令

创建模块

要创建新模块,请使用以下命令

php artisan module:create {name}

示例

php artisan module:create Users

这将生成位于 app/Modules 目录中的 Users 模块。

创建页面

要在模块内创建新页面,请使用以下命令

php artisan page:create {name}

示例

php artisan page:create Dashboard

这将生成指定模块中的 Dashboard 页面。

创建过滤器

要在模块内创建新过滤器,请使用以下命令

php artisan filter:create {filter-name} --module={module-name}

示例

php artisan filter:create Filter --module=Users

这将创建位于 app/Modules/Users/Filters 目录中的 Filter 类。

在模型中注册过滤器

您可以通过在模型中定义 filters() 方法来为模型注册过滤器。例如

public static function filters()
{
    return [
        Filter::class,
    ];
}

这允许您在模型查询上应用过滤器,从而更容易构建动态过滤逻辑。

可搜索字段

要启用模型中的搜索功能,请定义一个 $search 属性。此属性应是一个可以搜索的字段名称数组。您还可以通过指定关系和字段名称(例如 roles.name)来包含相关字段。

示例

protected $search = ['name', 'email', 'roles.name'];