Laravel: отношения по двойному/составному первичному ключу
Из коробки Laravel не поддерживает работу с составными ключами, но с помощью пакета awobaz/compoships мы можем это сделать.
Установка пакета через composer:
Пример использования:
Установка пакета через composer:
$ composer require awobaz/compoships
Пример использования:
namespace App; use Illuminate\Database\Eloquent\Model; class A extends Model { use \Awobaz\Compoships\Compoships; public function b() { return $this->hasMany(B:class, ['pk1', 'pk2'], ['lpk1', 'lpk2']); } }
namespace App; use Illuminate\Database\Eloquent\Model; class B extends Model { use \Awobaz\Compoships\Compoships; public function a() { return $this->belongsTo(B:class, ['lpk1', 'lpk2'], ['pk1', 'pk2']);
} }Compoships на момент написания статьи поддерживал следующие отношения:
- hasOne
- hasMany
- belongsTo
Комментарии
Отправить комментарий