I have the following routes in module_name.routing.yml.
module_name.usergroup_delete: path: 'module_name/usergroup/delete/{arg1}' defaults: _form: 'Drupalmodule_nameFormDeleteUserGroup' _title: 'Delete User group' requirements: _permission: 'access admin menus'
This is the code in module_name/src/Form/DeleteUserGroup.php.
namespace Drupalmodule_nameForm; use DrupalCoreFormConfigFormBase; use DrupalCoreFormFormStateInterface; class DeleteUserGroup extends ConfigFormBase { public function getFormId() { return 'delete_user_group'; } /** * General form for switching all nodes from one user to another. */ public function buildForm(array $form, FormStateInterface $form_state,$product_code) { $form['_product'] = array( '#type' => 'value', '#value' => $product_code,); //get the user group and username to display the confirmation message $result = db_query('select field_p_group_name_value from {content_type_usergroup} ctu' . ' where vid=%d',$product_code); while ($row = $result->fetchObject()) { $user_group = $row->field_p_group_name_value; } return confirm_form($form,t('Are you sure you want to delete "' .$user_group. '" User Group?'), isset($_GET['destination']) ? $_GET['destination'] : "function_name",t('This action cannot be undone.'),t('Delete'),t('Cancel')); } /** * #submit callback for node_adoption_transfer_form(). */ public function submitForm(array &$form, FormStateInterface $form_state) { $form_values = $form_state->getValues(); //if ($form_state['values']['confirm']) { $param = $form_state->getValue('_product'); drupal_set_message(t('Group ' .$param.' will get deleted.')); db_query('DELETE FROM {content_type_usergroup} WHERE vid = %d', $param); //delete the users of the usergroup too db_query('DELETE FROM {usergroup_user_map} WHERE group_id=%d', $param); drupal_set_message(t('usergroup has been deleted.')); drupal_goto('function_name'); } protected function getEditableConfigNames() { return "delete_user_group"; } }
I am getting the following error:
DeleteUserGroup::buildForm() must be compatible with DrupalCoreFormFormInterface::buildForm(array $form, DrupalCoreFormFormStateInterface $form_state)
Why?
Sponsored by SupremePR