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

yii2-inherit-model-behavior

  1. Installation
  2. Usage examples

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: `php 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']);
    

    } `

0 0
2 followers
339 downloads
Yii Version: 2.0
License: MIT
Category: Database
Developed by: Sergienko Oleg
Created on: May 14, 2018
Last updated: (not set)
Packagist Profile
Github Repository

Related Extensions