Setelah kita membuat tabel menu, kita akan membuat pengelompokan menu-menu ini di dalam Group, dan relasi antara Group dan Menu ini kita buat dalam tabel group_menu. Relasi tabel group_menu dengan tabel group dan menu ini bisa dilihat pada relations di model GroupMenu:
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
‘group’ => array(self::BELONGS_TO, ‘Group’, ‘group_id’),
‘menu’ => array(self::BELONGS_TO, ‘Menu’, ‘menu_id’),
);
}
Dalam artikel header dan detail, kita sudah menentukan Groupnya kemudian sekarang adalah menambahkan menu-menu yang sesuai kepada group tersebut. Untuk itu kita akan memilih menu-menu yang akan dimasukkan dalam Group tersebut.
Untuk mengerjakan hal ini kita edit models/GroupMenu.php :
public function getMenuList()
{
$connection=Yii::app()->db;
$sql=”SELECT menu_id, menu_name FROM menu ORDER BY menu_name”;
$menu=$connection->createCommand($sql)->query();
$menu->bindColumn(1,$option_value);
$menu->bindColumn(2,$option_name);
while($menu->read()!==false)
{
$balik[$option_value]=$option_name;
}
return $balik;
}
public function getYesNo()
{
return array(
0=>’Non Active’,
1=>’Active’,
);
}
public function getYesNoStr($is_active)
{
if ($is_active==0)
{
return ‘Non Active’;
}
else if ($is_active==1)
{
return ‘Active’;
}
}
Kemudian pada views/groupMenu/_form.php:
<div class=”row”>
<?php echo $form->labelEx($model,’menu_id’); ?>
<?php //echo $form->textField($model,’menu_id’);
echo $form->dropDownList($model,’menu_id’,GroupMenu::getMenuList());
?>
<?php echo $form->error($model,’menu_id’); ?>
</div>
<div class=”row”>
<?php echo $form->labelEx($model,’no_seq’); ?>
<?php echo $form->textField($model,’no_seq’); ?>
<?php echo $form->error($model,’no_seq’); ?>
</div>
<div class=”row”>
<?php echo $form->labelEx($model,’remark’); ?>
<?php echo $form->textField($model,’remark’,array(‘size’=>60,’maxlength’=>1000)); ?>
<?php echo $form->error($model,’remark’); ?>
</div>
<div class=”row”>
<?php echo $form->labelEx($model,’is_active’); ?>
<?php //echo $form->textField($model,’is_active’);
echo $form->dropDownList($model,’is_active’,$model->getYesNo());
?>
<?php echo $form->error($model,’is_active’); ?>
</div>
Kemudian pada views/groupMenu/view.php :
<?php $this->widget(‘zii.widgets.CDetailView’, array(
‘data’=>$model,
‘attributes’=>array(
‘group_menu_id’,
‘group_id’,
‘menu.menu_name’,
‘no_seq’,
‘remark’,
array(
‘name’=>’isActive’,
‘value’=>$model->getYesNoStr($model->is_active) ,
),
),
)); ?>
Dan pada bagian views/group/view.php
<?php $this->widget(‘zii.widgets.grid.CGridView’, array(
‘id’=>’group-menu-grid’,
‘dataProvider’=>$detailDataProvider,
‘columns’=>array(
‘menu.menu_name’,
‘no_seq’,
‘remark’,
array(
‘name’=>’is_active’,
‘value’=>’$data->getYesNoStr($data->is_active)’ ,
), array(
‘class’=>’CButtonColumn’,
‘template’ => ‘{view} {update} {delete}’,
‘buttons’ => array(
‘view’ => array(
‘label’=>’View’,
‘url’=>’Yii::app()->createUrl(“/groupMenu/view”, array(“id” => $data->group_menu_id))’,
),
‘update’ => array(
‘label’=>’Update’,
‘url’=>’Yii::app()->createUrl(“/groupMenu/update”, array(“id” => $data->group_menu_id))’,
),
‘delete’ => array(
‘label’=>’delete’,
‘url’=>’Yii::app()->createUrl(“/groupMenu/delete”, array(“id” => $data->group_menu_id))’,
),
),
),
),
)); ?>
Tampilan akan seperti ini:
Kunjungi www.proweb.co.id untuk menambah wawasan anda.