Reliese Laravel Model Generator配置指南:定制你的完美模型生成规则

Reliese Laravel Model Generator配置指南:定制你的完美模型生成规则

【免费下载链接】laravel Reliese Laravel Model Generator 【免费下载链接】laravel 项目地址: https://gitcode.com/gh_mirrors/larav/laravel

Reliese Laravel Model Generator是一款强大的工具,能够帮助开发者快速生成符合Laravel规范的Eloquent模型。通过灵活的配置选项,你可以轻松定制模型生成规则,实现从数据库表结构到模型代码的自动化转换,大幅提升开发效率。

快速开始:安装与基础配置

要开始使用Reliese Laravel Model Generator,首先需要通过Composer安装依赖。在你的Laravel项目根目录下执行以下命令:

composer require reliese/laravel --dev

安装完成后,项目根目录下会生成一个核心配置文件config/models.php,这是定制模型生成规则的主要场所。通过编辑这个文件,你可以控制模型的生成路径、命名空间、父类、特性等关键属性。

核心配置详解:打造个性化模型生成规则

模型存储路径与命名空间

config/models.php文件中,你可以通过pathnamespace选项设置生成模型的存储路径和命名空间:

'path' => app_path('Models'),
'namespace' => 'App\Models',

默认情况下,模型会生成到app/Models目录下,并属于App\Models命名空间。如果你需要将模型存储到不同位置或使用不同命名空间,只需修改这两个选项即可。

自定义模型父类

Reliese允许你指定一个自定义的模型父类,替代默认的Illuminate\Database\Eloquent\Model

'parent' => Illuminate\Database\Eloquent\Model::class,

这一特性非常有用,例如当你需要为所有模型添加通用功能时,可以创建一个基础模型类并让所有生成的模型继承它。

特性(Traits)集成

通过use选项,你可以为生成的模型自动添加指定的特性:

'use' => [
    // Reliese\Database\Eloquent\BitBooleans::class,
    // Reliese\Database\Eloquent\BlamableBehavior::class,
],

默认配置中提供了两个实用特性的示例:BitBooleans用于将MySQL的bit类型字段转换为布尔值,BlamableBehavior则提供了自动记录创建者和更新者的功能。你可以根据项目需求取消注释或添加其他特性。

时间戳与软删除设置

Reliese提供了灵活的时间戳和软删除配置:

'timestamps' => true,
'soft_deletes' => true,

默认情况下,这两个选项都被设置为true,表示生成的模型将包含时间戳字段(created_atupdated_at)和软删除功能(deleted_at字段)。如果你需要自定义时间戳字段名称,可以将timestamps设置为一个数组:

'timestamps' => [
    'enabled' => true,
    'fields' => [
        'CREATED_AT' => 'created_at',
        'UPDATED_AT' => 'updated_at',
    ]
]

同样,你也可以自定义软删除字段的名称:

'soft_deletes' => [
    'enabled' => true,
    'field' => 'deleted_at',
]

隐藏属性与批量赋值保护

为了增强应用安全性,Reliese允许你配置默认的隐藏属性和批量赋值保护规则:

'hidden' => [
    '*secret*', '*password', '*token',
],
'guarded' => [
    // 'created_by', 'updated_by'
],

hidden数组定义了在模型转换为数组或JSON时需要隐藏的属性,支持通配符匹配。guarded数组则定义了不允许批量赋值的属性,与Laravel的$guarded属性功能相同。

数据类型转换

通过casts选项,你可以指定字段的数据类型转换规则:

'casts' => [
    '*_json' => 'json',
],

默认配置中,所有以_json结尾的字段都会被自动转换为JSON类型。你可以根据需要添加更多转换规则,例如:

'casts' => [
    '*_json' => 'json',
    'is_active' => 'boolean',
    'price' => 'decimal:2',
],

表过滤与命名

Reliese提供了灵活的表过滤和命名功能,让你可以精确控制哪些表生成模型以及模型的命名方式:

'except' => [
    'migrations',
    'failed_jobs',
    'password_resets',
    'personal_access_tokens',
    'password_reset_tokens',
],
'only' => [
    // 'users',
],
'table_prefix' => '',
'model_names' => [
    // 'billing_invoices' => 'Invoice',
],

except数组列出了不需要生成模型的表名,only数组则用于指定只生成哪些表的模型(默认情况下为空,表示生成所有表的模型)。table_prefix选项可以去除表名中的前缀,model_names则允许你为特定表指定自定义的模型名称。

关系命名策略

Reliese支持两种关系命名策略:

'relation_name_strategy' => 'related',
// 'relation_name_strategy' => 'foreign_key',
  • related策略(默认):使用关联表名作为关系名称
  • foreign_key策略:使用外键名作为关系名称

例如,对于post.author_id -> user.id这样的关联:

  • related策略会生成Post::user()User::posts()方法
  • foreign_key策略会生成Post::author()User::posts_where_author()方法

你可以根据项目需求选择合适的命名策略。

高级配置:连接与数据库特定设置

除了全局配置外,Reliese还支持针对特定数据库和连接的配置:

// 'shop' => [
//     'path' => app_path(),
//     'namespace' => 'App',
//     'snake_attributes' => false,
//     'qualified_tables' => true,
//     'use' => [
//         Reliese\Database\Eloquent\BitBooleans::class,
//     ],
//     'except' => ['migrations'],
//     'only' => ['users'],
//      // 表特定配置:
//     'user' => [
//      // 不使用任何默认特性
//         'use' => [],
//     ]
// ],

通过这种方式,你可以为不同的数据库或表设置不同的生成规则,满足复杂项目的需求。

生成模型:使用Artisan命令

配置完成后,你可以使用以下Artisan命令生成模型:

php artisan code:models

如果你只想为特定表生成模型,可以使用--table选项:

php artisan code:models --table=users,posts

生成的模型文件将保存在你在config/models.php中指定的path目录下。

总结

Reliese Laravel Model Generator提供了丰富的配置选项,让你能够轻松定制符合项目需求的模型生成规则。通过合理配置config/models.php文件,你可以大幅减少手动编写模型的工作量,提高开发效率,同时确保模型代码的一致性和规范性。

无论是简单的博客项目还是复杂的企业级应用,Reliese Laravel Model Generator都能成为你Laravel开发工具箱中的得力助手。开始探索它的强大功能,体验自动化模型生成带来的便利吧!

【免费下载链接】laravel Reliese Laravel Model Generator 【免费下载链接】laravel 项目地址: https://gitcode.com/gh_mirrors/larav/laravel

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值