sql >> Databasteknik >  >> Database Tools >> phpMyAdmin

Fatalt fel:Uncaught ArgumentCountError:För få argument för att fungera Admincategory::deletecategory(),

Ibland händer det att AdminCategory::deletecategory($parentId) anropas utan en parameter men prototypen har inget standardvärde för det och därför kastas undantag. Eftersom du får data från en postförfrågan och det alltid finns en möjlighet att en kategori inte har en förälder kan du ändra din metod till att se ut så här:

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
}

Om du använder skrivtips skulle det vara lämpligare att få metoden att se ut som

 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
 }

Om du VERKLIGEN förväntar dig att föräldra-ID MÅSTE skickas, linda istället metoduppringaren 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. SSMS SQL SERVER Management Studio 2012 startstopp

  2. phpmyadmin och främmande nycklar

  3. Lägg till en rad i JTable och Database (phpMyAdmin)?

  4. wamp server mysql användar-id och lösenord