siddthartha / yii2-relational-set
There is no license information available for the latest version (dev-master) of this package.
Represents Yii2 m2m junction relation as PK-array field
dev-master
2017-04-05 09:22 UTC
Requires
- siddthartha/yii2-tools: dev-master
- yiisoft/yii2: ~2.0.0
This package is not auto-updated.
Last update: 2024-11-10 03:13:37 UTC
README
Represents Yii2 m2m junction relation as array field. Stores it's changes as difference without cleaning relation.
Installation
The preferred way to install this extension is through composer.
Either run
$ composer require siddthartha/yii2-relational-set
or add
"siddthartha/yii2-relational-set": "*"
to the require
section of your composer.json
file.
Usage
Host model
class Host extends \yii\db\ActiveRecord { public $_slaves; /** * {@inheritdoc} */ public function behaviors() { return [ 'sets' => [ 'class' => \siddthartha\behaviors\RelationalSetBehavior::class, 'attributes' => [ '_slaves' => 'slaves', ], ], ]; } /** * @return \yii\db\ActiveQueryInterface */ public function getSlaves() { return $this->hasMany(Slave::class, ['id' => 'id_slave']) ->viaTable(HostSlave::tableName(), ['id_host' => 'id']) ->indexBy('id'); } }
View code example
<?=$form->field( $model, '_slaves')->checkboxList(/*...*/)?>
Any changes to relation (junction table) will be executed as insert
and/or update
the needed difference only!