我有 2 个 MySQL 数据库表,称为角色(代表用户访问角色)和模块(代表每个角色允许的模块)。每个角色可以有很多模块,每个模块可以有很多角色。
我想添加一个表示角色表的 crud,其中包含一个允许选择所有相关模块的多选字段。最好的方法是什么。提前致谢。
可以有多种解决方案。
第一个- 使用带有角色的扩展器的用户 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');
第三个- 使用两个角色列表(可用角色和关联角色)和一些按钮将角色从一个列表“移动”到另一个列表。像这样的东西:(现在找不到合适的键盘页面的链接):(
肯定有更多的方法可以做到这一点。