sheldonreiff / laravel-advanced-relationships
使用awobaz/compoships和staudenmeir/eloquent-json-relations进行多列和JSON关系
v1.0.0
2020-01-12 02:45 UTC
Requires
- php: ^7.2
- awobaz/compoships: ^1.1
- staudenmeir/eloquent-json-relations: ^1.2.3
Requires (Dev)
- jeroen-g/laravel-packager: ^2.4
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-07 10:00:46 UTC
README
使用awobaz/compoships和staudenmeir/eloquent-json-relations为Laravel Eloquent实现多列和JSON列关系
在最近的项目中,我遇到了需要在同一模型中使用多列和JSON列关系的需求。Laravel原生不支持这两种功能。存在两个第三方包分别提供这些功能,但由于它们具有冲突的方法,所以不能在同一类中使用。本包将awobaz/compoships和staudenmeir/eloquent-json-relations结合,以便在同一Laravel模型中提供两者的完整功能。
安装
composer require sheldonreiff/laravel-advanced-relationships
用法
将HasAdvancedRelationships
特质添加到父模型和关联模型。对于所有支持的关系,可以根据下面的示例指定本地键和外部键的JSON列、多列或多JSON列。
namespace App;
use Illuminate\Database\Eloquent\Model;
class A extends Model
{
use \Reiff\AdvancedRelationships\HasAdvancedRelationships;
public function b()
{
return $this->hasMany('B', 'f1', 'details->l1');
}
public function c()
{
return $this->hasMany('C', ['f1', 'details->f2'], ['details->l1', 'l2']);
}
}
支持的关系
以下关系都支持多列和JSON列。
- hasOne
- hasMany
- belongsTo
附加信息
有关其他功能和更多信息,请参阅awobaz/compoships和staudenmeir/eloquent-json-relations。本包依赖于这些包,并仅实现了使它们协同工作的必要集成。