phpMyAdmin
 sql >> Baza danych >  >> Database Tools >> phpMyAdmin

Błąd krytyczny:Uncaught ArgumentCountError:Za mało argumentów do funkcji Admincategory::deletecategory(),

Czasami zdarza się, że AdminCategory::deletecategory($parentId) jest wywoływana bez parametru, ale prototyp nie ma dla niego wartości domyślnej i dlatego zgłaszany jest wyjątek. Ponieważ otrzymujesz dane z żądania postu i zawsze istnieje możliwość, że kategoria nie ma rodzica, możesz zmienić swoją metodę tak, aby wyglądała tak:

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
}

Jeśli korzystasz ze wskazówek dotyczących pisania, bardziej odpowiednie byłoby sprawienie, aby metoda wyglądała tak, jak

Funkcja
 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
 }

Jeśli NAPRAWDĘ oczekujesz, że parentId MUSI zostać przekazany, zamiast tego zapakuj wywołanie metody za pomocą 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. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Rozszerzenie mysql jest przestarzałe

  2. Jak usunąć zduplikowane wiersze w MySQL za pomocą PHPMyAdmin?

  3. #1045 — Odmowa dostępu dla użytkownika „root”@„localhost” (przy użyciu hasła:TAK)

  4. Prosta modyfikacja motywu OpenCart

  5. Błąd MySQL:zduplikowany wpis dla klucza podstawowego