1

我有 2 个 MySQL 数据库表,称为角色(代表用户访问角色)和模块(代表每个角色允许的模块)。每个角色可以有很多模块,每个模块可以有很多角色。

我想添加一个表示角色表的 crud,其中包含一个允许选择所有相关模块的多选字段。最好的方法是什么。提前致谢。

4

1 回答 1

1

可以有多种解决方案。

第一个- 使用带有角色的扩展器的用户 CRUD(应该工作):

$crud = $this->add('CRUD');
$crud->setModel('User');

if (! $crud->isEditing()) {
    // add subCRUD
    $sub_crud = $crud->addRef('UserRole', array(
        'extra_fields' => array('role'),
        'view_options' => array('entity_name' => 'Role'),
        'label' => 'Roles'
    ));
}

第二个- 使用 Grid 和 Roles + grid->addSelectable($fields) (未经测试,但只是为了给你一个想法):

$grid = $this->add('Grid');
$grid->setModel('UserRole');
$grid->addSelectable('selected');

第三个- 使用两个角色列表(可用角色和关联角色)和一些按钮将角色从一个列表“移动”到另一个列表。像这样的东西:(现在找不到合适的键盘页面的链接):(

肯定有更多的方法可以做到这一点。

于 2013-08-06T17:13:49.987 回答