danhusaker / eloquent-meta-relate
扩展 Eloquent 关联以支持隐式多态和合并
v0.1.0
2016-05-13 09:47 UTC
Requires
- illuminate/database: ^5.0.7
This package is auto-updated.
Last update: 2024-09-10 22:46:38 UTC
README
扩展 Eloquent 关联以支持隐式多态和合并
安装
使用 composer
composer require danhunsaker/eloquent-meta-relate
简单!
用法
将 Danhunsaker\Eloquent\Traits\MetaRelate
特性包含在任何您想扩展的模型中
use Danhunsaker\Eloquent\Traits\MetaRelate; use Illuminate\Database\Eloquent\Model; class BaseModel extends Model { use MetaRelate; }
隐式多态关系
现在,您可以通过提供一个类名数组,而不是单个类,在多个模型参与同一关系时创建隐式多态关系
public function files() { return $this->hasMany([ 'App\Models\Audio', 'App\Models\Document', 'App\Models\Image', 'App\Models\Video', ]); }
关系合并
您还可以合并现有关系
public function forkedTo() { return $this->hasMany('App\Models\Fork', 'original_id')->with('fork'); } public function forkedFrom() { return $this->hasMany('App\Models\Fork', 'fork_id')->with('original'); } public function allForks() { return $this->createMetaRelation() ->merge($this->forkedTo()) ->merge($this->forkedFrom()); }
贡献
贡献(问题、pull 请求等)在 GitHub 上总是受欢迎。
如果您发现安全问题,请 直接给我发邮件。