public function delete() { //$request_param = CRequest::param(); //$this->_param = $request_param; //$this->initParam(); if ($role_id = CRequest::param($this->_paramKey)) { $model = AdminRole::findOne([$this->_paramKey => $role_id]); if ($model->role_id) { $innerTransaction = Yii::$app->db->beginTransaction(); try { $model->delete(); # 删除这个role 对应的所有关联的菜单 AdminRoleMenu::deleteAll(['role_id' => $role_id]); $innerTransaction->commit(); } catch (Exception $e) { $innerTransaction->rollBack(); } echo json_encode(["statusCode" => "200", "message" => 'Delete Success!']); exit; } else { echo json_encode(["statusCode" => "300", "message" => "role_id => {$role_id} , is not exist"]); exit; } } else { if ($ids = CRequest::param($this->_paramKey . 's')) { $id_arr = explode(",", $ids); $innerTransaction = Yii::$app->db->beginTransaction(); try { AdminRole::deleteAll(['in', 'role_id', $id_arr]); # 删除这个role 对应的所有关联的菜单 AdminRoleMenu::deleteAll(['in', 'role_id', $id_arr]); $innerTransaction->commit(); } catch (Exception $e) { $innerTransaction->rollBack(); } echo json_encode(["statusCode" => "200", "message" => "{$ids} Delete Success!"]); exit; } } echo json_encode(["statusCode" => "300", "message" => "role_id or ids Param is not Exist!"]); exit; }
public function deleteMenu() { $id = CRequest::param("id"); if (!$id) { echo json_encode(["statusCode" => "300", "message" => "id can not empty"]); exit; } else { $one = AdminMenu::find()->where(" id = " . $id . " AND can_delete = 2 ")->one(); //echo $one->id; if ($one->id) { $ids = $this->getMenuAllChildId($id); $ids[] = $id; # 1. 删除当前分类对应的所有子分类 # 2. 删除在menu_id 对应到权限中的所有menu_id $innerTransaction = Yii::$app->db->beginTransaction(); try { AdminRoleMenu::deleteAll(['in', 'menu_id', $ids]); $idsStr = implode(",", $ids); $one->deleteAll(" id in (" . $idsStr . ") AND can_delete = 2"); $innerTransaction->commit(); echo json_encode(["statusCode" => "200", "message" => "delete menu success! MENU NAME:" . $one->name]); } catch (Exception $e) { $innerTransaction->rollBack(); } exit; } else { echo json_encode(["statusCode" => "300", "message" => "the menu can not delete"]); exit; } } }