Skip to content

zacksleo/yii2-lookup

Repository files navigation

Lookup Module For Yii2

Latest Stable Version Total Downloads Build Status Scrutinizer Code Quality Code Climate Code Coverage StyleCI

Migrate database

To add a lookup table to your database, following is the sql for lookup:


CREATE TABLE IF NOT EXISTS `lookup` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `type` varchar(100) DEFAULT NULL,
  `name` varchar(100) DEFAULT NULL,
  `code` int(11) DEFAULT '1',
  `comment` text,
  `active` tinyint(1) DEFAULT '1',
  `order` int(11) DEFAULT '1',
  `created_at` int(11) DEFAULT NULL,
  `updated_at` int(11) DEFAULT NULL,	  
  PRIMARY KEY (`id`),
  UNIQUE KEY `CK_Type_Name_Unique` (`type`,`name`)	  
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Or else you can use yii migration

	
yii migrate/up --migrationPath=@zacksleo/yii2/lookup/migrations

Config the components

To access the lookup functionality anywhere in you application (either frontend or backend) follow the following steps:

In your main.php under config folder add the following:
    'components' => [
        ---
        'lookup' => [
            'class' => 'zacksleo\yii2\lookup\models\Lookup',
        ],
        ---
    ]

Customize the form

Following are the few usage of lookup functionality:


/*** dropdown list from lookup ***/

<?= $form->field($model, 'active')->dropDownList(
    Yii::$app->lookup->items('yes_no'),
    //['1'=>'Active', '2' => 'Pending'],
    ['prompt'=>'--- Select ---'] 
) ?>


/*** RadioButton List ***/

<?= $form->field($model, 'gender')->radioList(
    Yii::$app->lookup->items('male_female'), ['separator' => '']
) ?>


/*** CheckBoxes List ***/

<?= $form->field($model, 'language')->checkboxList(
        Yii::$app->lookup->items('language'), ['separator' => '']
    ) ?>


/*** Dropdown List from Lookup ***/

<?= $form->field($model, 'language')->dropDownList(
        Yii::$app->lookup->items('language'), ['prompt' => '--- Select ---']
    ) ?>
	    

Inspired By Ibrar Turi @ibrarturi, Thanks for his work.