Hello,
I’ll try to describe the main problem.
I have tree tables in my acl system, for example:
roles
id
role_title
menu
id
menu_title
rolemenu
role_id
menu_id
can_view
can_create
can_update
can_delete
I wannt to fill these fields automatically by relational active record help, but I dont know how it’s possible.
And when I create new role item I can choise what user can do in different menus (CRUD).
Menu form:
<div class="row">
<?php echo $form->labelEx($model,'name'); ?>
<?php echo $form->textField($model,'name',array('size'=>60,'maxlength'=>128)); ?>
<?php echo $form->error($model,'name'); ?>
</div>
And the menus with checkboxes:
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'menu-grid',
'selectableRows' => 2,
'dataProvider'=>$dataProvider,
/*'filter'=>$model,*/
'columns'=>array(
'id',
'title',
array(
'class' => 'SCheckboxColumn',
'checkBoxHtmlOptions' =>
array(
'checked' => 'checked',
),
'header' => 'View',
'id' => 'roles_action_view',
'value' => '$data->id',
),
array(
'class' => 'SCheckboxColumn',
'checkBoxHtmlOptions' =>
array(
'checked' => 'checked',
),
'header' => 'Create',
'id' => 'roles_action_create',
'value' => '$data->id',
),
array(
'class' => 'SCheckboxColumn',
'checkBoxHtmlOptions' =>
array(
'checked' => 'checked',
),
'header' => 'Update',
'id' => 'roles_action_update',
'value' => '$data->id',
),
array(
'class' => 'SCheckboxColumn',
'checkBoxHtmlOptions' =>
array(
'checked' => 'checked',
),
'header' => 'Delete',
'id' => 'roles_action_delete',
'value' => '$data->id',
),
),
));
I have set relations
in menu model:
public function relations()
{
return array(
'module' => array(self::HAS_MANY, 'Modules', 'id'),
'role' => array(self::MANY_MANY, 'Roles',
'rolemenu(role_id, menu_id)'),
);
}
In roled model:
public function relations()
{
return array(
'menu'=>array(self::MANY_MANY, 'Menu',
'rolemenu(role_id, menu_id)'),
);
}
All menu information yii saves, but no checkbox selection apears in database.
Is there possible to do this thing automatically in yii or I must write in role controller insert or update action loop to write all checkboxes ?