musamba/red-thread

Red Thread 是一个 Laravel 包,可以帮助您轻松列出给定模型中的所有关系。

1.0.3 2024-03-06 08:56 UTC

This package is auto-updated.

Last update: 2024-09-27 18:49:09 UTC


README

Latest Version on Packagist Software License Total Downloads

RedThread 是一个简单的包,允许您列出 Laravel 模型的关系。

通过红线相连的两个人注定是恋人,无论地点、时间或环境如何。这根神奇的红线可能会拉长或缠结,但永远不会断裂。

目录

安装

您可以通过 composer 安装此包

composer require musamba/red-thread

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="red-thread"

用法

您只需在模型中使用 HasRedThreads 特性并调用 relationships 方法。以下是一个示例

use Musamba\RedThread\Traits\HasRedThreads;
use Musamba\RedThread\Attributes\RedThread;

class Book extends Model
{
    use HasRedThreads;
    
    // ...
    
    #[RedThread]
    public function reviews(): HasMany
    {
        return $this->hasMany(Review::class);
    }
    
    #[RedThread]
    public function author(): BelongsTo
    {
        return $this->belongsTo(Author::class);
    }
    
    // ...
}

在模型实例上调用提供的 relationships() 静态方法

Book::relationships();

将返回包含所有关系的数组。

[
    'reviews' => 'Illuminate\Database\Eloquent\Relations\HasMany',
    'author' => 'Illuminate\Database\Eloquent\Relations\BelongsTo',
]

如果 check_for_attribute 配置键设置为 false,则包将检查方法的返回类型,因此有这种情况

use Musamba\RedThread\Traits\HasRedThreads;

class Book extends Model
{
    use HasRedThreads;
    
    // ...
    
    public function reviews(): HasMany
    {
        return $this->hasMany(Review::class);
    }
    
    public function author(): BelongsTo
    {
        return $this->belongsTo(Author::class);
    }
    
    // ...
}

将返回与上面相同的数组。

测试

composer test

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

请随意为此包做出贡献,帮助我改进它。您可以通过打开问题或拉取请求来做出贡献。

路线图

  • 添加 artisan 命令以通过 CLI 列出关系。
  • 添加相关模型类和外键信息。

安全漏洞

如果您在 RedThread 中发现安全漏洞,请打开一个问题。

鸣谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅许可证文件