Mysql ATK4如何将OneToMany retion与multiselect配合使用?

Mysql ATK4如何将OneToMany retion与multiselect配合使用?,mysql,atk4,Mysql,Atk4,我有两个MySQL DB表,分别称为角色(表示用户访问角色)和模块(表示每个角色允许的模块)。每个角色可以有许多模块,每个模块可以有许多角色 我想添加一个crud代表角色表,该表带有一个允许选择所有相关模块的multiselect字段。最好的方法是什么。提前感谢。可以有多种解决方案 第一个-将用户CRUD与角色扩展器一起使用(应工作): 第二个-将网格与角色一起使用+网格->添加可选($fields)(未测试,但只是为了让您了解): 第三个使用两个带有角色(可用角色和关联角色)的列表和一些按钮将

我有两个MySQL DB表,分别称为角色(表示用户访问角色)和模块(表示每个角色允许的模块)。每个角色可以有许多模块,每个模块可以有许多角色


我想添加一个crud代表角色表,该表带有一个允许选择所有相关模块的multiselect字段。最好的方法是什么。提前感谢。

可以有多种解决方案

第一个-将用户CRUD与角色扩展器一起使用(应工作):

第二个-将网格与角色一起使用+网格->添加可选($fields)(未测试,但只是为了让您了解):

第三个使用两个带有角色(可用角色和关联角色)的列表和一些按钮将角色从一个列表“移动”到另一个列表。 类似这样的内容:(现在找不到指向相应代码板页面的链接):(


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

可以有多种解决方案

第一个-将用户CRUD与角色扩展器一起使用(应工作):

第二个-将网格与角色一起使用+网格->添加可选($fields)(未测试,但只是为了让您了解):

第三个使用两个带有角色(可用角色和关联角色)的列表和一些按钮将角色从一个列表“移动”到另一个列表。 类似这样的内容:(现在找不到指向相应代码板页面的链接):(


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

我使用了用户和角色n:n关系作为示例。在您的案例中,这将是角色和模块n:n关系。我使用了用户和角色n:n关系作为示例。在您的案例中,这将是角色和模块n:n关系。
$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 = $this->add('Grid');
$grid->setModel('UserRole');
$grid->addSelectable('selected');