sorokinmedia/yii2-ar-relations

AR relations for Yii2

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

This package is auto-updated.

Last update: 2024-04-04 20:00:04 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