asArray()->all(); return $roles; } public function actionSaveUserMenu(){ $params = $this->requestValidate($this->post(),[ ['role_id','required'], ['role_id','integer'], ['ids','required'] ]); if(is_array($params->ids)){ $insert = []; foreach ($params->ids as $id){ $insert[] = [ 'role_id'=>$params->role_id, 'menuUrl'=>$id, 'created_at'=>time(), 'updated_at'=>time() ]; } RoleMenu::deleteAll(['role_id'=>$params->role_id]); RoleMenu::getDb()->createCommand()->batchInsert(RoleMenu::tableName(),array_keys($insert[0]),$insert)->execute(); } return []; } public function actionMenuByRoleId(){ $params = $this->requestValidate($this->post(),[ ['roleId','required'], ]); $roleMenus = RoleMenu::findAll(['role_id' => $params->roleId]); $keys = ArrayHelper::getColumn($roleMenus,'menuUrl'); $menus = Menu::find()->asArray()->all(); return[ 'menus'=>ArrayHelper::itemsMerge($menus,0,'menuUrl','parentPath','children'), 'checked'=>$keys ]; } public function actionDel(){ $menuUrl = $this->post('menuUrl'); $model = Menu::findOne($menuUrl); if($model->delete()){ Menu::updateAll(['parentPath'=>''],['parentPath'=>$menuUrl]); } return []; } }