sorokinmedia / yii2-ar-relations
AR relations for Yii2
Installs: 337
Dependents: 8
Suggesters: 0
Security: 0
Stars: 1
Watchers: 6
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: >=2.0.30
Requires (Dev)
- phpunit/phpunit: 8.*
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2024-11-04 21:17:26 UTC
README
Sorokin.Media repository
Расширение базового класса \yii\db\ActiveRecord
Позволяет описать метод initClasses
и использовать в связях (yii2 relations) автоматическую подстановку нужного класса
Необходимо в проекте использовать трейт, где определить в виде атрибуторв все классы, учавствующие в связях и каждому атрибуту присвоить значение - имя нужного класса
Присвоение классов переменным делать в методе initClasses
Пример файла трейта:
trait RelationClassTrait
{
public $__userClass;
public function initClasses()
{
$this->__userClass = User::class;
}
/**
* инициализация связей
*/
public function init()
{
parent::init();
$this->initClasses();
}
/**
* метод для динамической подстановки нужного класса в связь
* @param string $field
* @param string $class
* @return mixed
*/
public function setRelationClass(string $field, string $class)
{
return $this->{$field} = $class;
}
}
Необходимо во всех ActiveRecord моделях использовать данный трейт, а также имплементацию интерфейса RelationInterface