sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

Fatal fejl:Ufanget ArgumentCountError:For få argumenter til at fungere Admincategory::deletecategory(),

Nogle gange sker det, at AdminCategory::deletecategory($parentId) kaldes uden en parameter, men prototypen har ikke en standardværdi for det, og derfor er der en undtagelse. Da du får data fra en postanmodning, og der altid er en mulighed for, at en kategori ikke har en forælder, kan du ændre din metode til at se sådan ud:

function deletecategory($parentId = null)
{
    $ids = $_POST['id'];
    $this->model->deletecategory($ids);
    if (null !== $parentId) {
        header('location:'.URL.'admincategory/showchildren/'.$parentId);
    }
    // PUT MORE OF YOUR LOGIC HERE, I DO NOT KNOW WHAT SHOULD HAPPEN
}

Hvis du bruger indtastningstip, vil mere passende være at få metoden til at se ud

 function deletecategory(string $parentId = ''): void //void is for php7.1
 {
    $ids = $_POST['id'];
    $this->model->deletecategory($ids);
    if ('' !== $parentId) {
        header('location:'.URL.'admincategory/showchildren/'.$parentId);
    }
    // AGAIN LOGIC HERE
 }

Hvis du VIRKELIG forventer, at forældre-ID SKAL videregives, så omslut i stedet metodeopkaldet med try catch

if (method_exists($object, $this->method)) {
    try {
        call_user_func_array([$object, $this->method], $this->params);
    } catch (\Exception $ex) {
        // HANDLE EXCEPTION HERE
    }
}



  1. Indstilling af et felt som Not NULL i phpmyadmin

  2. MYSQL:Sådan gør du NULL eller tomme data som standard til 0 under indsættelse

  3. For mange parameterværdier gør forespørgslen langsommere

  4. Nem måde at omarrangere kolonner?