sorokinmedia/yii2-ar-relations

AR relations for Yii2

Installs: 339

Dependents: 8

Suggesters: 0

Security: 0

Stars: 1

Watchers: 5

Forks: 0

Open Issues: 0

Type:yii2-extension

pkg:composer/sorokinmedia/yii2-ar-relations

dev-master 2020-01-04 10:25 UTC

This package is auto-updated.

Last update: 2025-10-04 23:31:20 UTC


README

Total Downloads

Sorokin.Media repository

Total Downloads

Расширение базового класса \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