Gii extension - complex model generator for Yii 2 Framework
Installs: 36
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
pkg:composer/grzegorz-pierzakowski/hii
Requires
- dmstr/yii2-bootstrap: *
 - yiisoft/yii2-gii: >=2.0.1
 
README
Extended models for Gii, the code generator of Yii2 Framework
What is it?
Hii provides automatic model generation for complex db models. It supports:
- many relations between two models
 - 'name2other_name' db table names
 - cascade model structure:
 
models
|- base / model.php  <- this one has automaticly generated relations
|- model.php
- relation to self is possible only by setting it in 'customRelations'
 - autogenerating static methods findBy{UniqieField}
 
Installation
The preferred way to install this extension is through composer.
composer.phar require grzegorz-pierzakowski/hii:"*"
or you can add this into the composer.json:
"grzegorz-pierzakowski/hii": "*"
The Hii-model generator is registered automatically in the application bootstrap process, if the Gii module is enabled
Use custom options (It's in params untill Yii2 enables passing config to generators)
$config['params']['hii-model'] = [
            // put your custom pairs of 'table' => 'ModelName' map here
            'tableModelMap' => [
            ],
            // put your pairs of 'column_name' => 'RelationSuffix' map here
            // this will allow to generate more than one relation between 2 models
            'customRelations' => [
            ]
        ]
       
Usage
Visit your application's Gii (eg. index.php?r=gii and choose Hii Model from the main menu screen.
For basic usage instructions see the Yii2 Guide section for Gii.
Let's assume you have a ggroup table represented by Group object and ggroup has user_id and user_last_id columns. You have two relations to User object then. If you set the project as:
$config['params']['hii-model'] = [
    'customRelations' => [
        'last_user_id' => 'Last'
    ],
    'tableModelMap' => [
        'ggroup' => 'Group'
    ]
]
Magic will happen and your models will have relations as below:
Group User->myGroup
Group User->myGroupLast
User Group->lastUser
User Group->user