mubat/yii2-inherit-model-behavior yii2 behavior to connect inherit ActiveRecord

behaviormodelinherit

yii2-inherit-model-behavior

Use this behavior to connect inherit ActiveRecord with (one-to-many relation)

In parent ActiveRecord should be column that uses to store ID of inherit ActiveRecord.

Extension supports 2 request formats:

  • default Yii2 input data, like:
    //$_POST[]
    [
    'Object' => [
        'option_1' => 'value',
        'option_2' => 'another value',
    ]
    ]
  • simple input names (usable for API), like:
    //$_POST[]
    [
    'option_1' => 'value',
    'option_2' => 'another value',
    ]

You can disable inherit object deletion if need.

Installation

The preferred way to install this extension is through Composer.

Either run php composer.phar require mubat/yii2-inherit-model-behavior "~1.0"

or add "mubat/yii2-inherit-model-behavior": "~1.0" to the require section of your composer.json

Usage examples

  • Options:

    • dependClass [required string] - target class name;
    • dependClassInitConfig [array] - some init configuration for target class. See \yii\app\Yii::createObject()
    • virtualOption [required string] - option name that will be use at project
    • relationMethod [string] - getter that returns with \yii\db\ActiveQuery object. By default, get[virtualOption]()
    • primaryKeyName [string] - key name at inherit model. Default "id"
    • linkAttribute [string] - column name in owner table for connect with inherit table. By default, [virtualOption]_id
    • createDependObjectOnEmpty [boolean] - you can disable empty inherit object creation if need. By default, true
    • simpleRequest [boolean] - How need to parse simple options: like 'bar' (true) or like 'Foo[bar]' (false) at request. By default, false
    • deleteWithOwner - with this option you can disable/enable run delete() action on inherit object. Default: true (It also can change status during processing on the fly)
  • Usage:

    public function behaviors()
    {
        $behaviors = parent::behaviors();
        $behaviors['image'] = [
            'class' => InheritModelBehavior::class,
            'dependClass' => Image::class, //required
            'virtualOption' => 'image', //required
            'linkAttribute' => 'image_id',
            'relationMethod' => 'getSavedImage',
            'simpleRequest' => true,
            'deleteWithOwner' => true,
        ];
        return $behaviors;
    }
    
    /** @return \yii\db\ActiveQuery */
    public function getSavedImage()
    {
        return $this->hasOne(Image::class, ['id' => 'image_id']);
    }

Statistics

Downloads
GitHub Stars
GitHub Forks

Releases

Comments



v1.3.2 is the latest of 6 releases



MIT license
Stats
3 github stars & 1 github forks
1 downloads in the last day
54 downloads in the last 30 days
337 total downloads