musamba / red-thread
Red Thread 是一个 Laravel 包,可以帮助您轻松列出给定模型中的所有关系。
1.0.3
2024-03-06 08:56 UTC
Requires
- php: ^8.1
Requires (Dev)
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.5
- pestphp/pest-plugin-laravel: ^2.0
README
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)。有关更多信息,请参阅许可证文件