phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

Schwerwiegender Fehler:Uncaught ArgumentCountError:Zu wenige Argumente für die Funktion Admincategory::deletecategory(),

Manchmal kommt es vor, dass AdminCategory::deletecategory($parentId) ohne Parameter aufgerufen wird, aber der Prototyp keinen Standardwert dafür hat und daher eine Ausnahme ausgelöst wird. Da Sie Daten von einer Post-Anfrage erhalten und es immer möglich ist, dass eine Kategorie kein übergeordnetes Element hat, können Sie Ihre Methode so umgestalten, dass sie wie folgt aussieht:

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
}

Wenn Sie Tipphinweise verwenden, wäre es angemessener, die Methode wie folgt aussehen zu lassen

 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
 }

Wenn Sie WIRKLICH erwarten, dass parentId übergeben werden MUSS, schließen Sie stattdessen den Methodenaufrufer mit try catch

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