sql >> データベース >  >> Database Tools >> phpMyAdmin

致命的なエラー:キャッチされていないArgumentCountError:関数Admincategory ::deletecategory()に引数が少なすぎます。

    AdminCategory ::deletecategory($ parentId)がパラメーターなしで呼び出されたが、プロトタイプにはデフォルト値がないため、例外がスローされる場合があります。投稿リクエストからデータを取得し、カテゴリに親がない可能性が常にあるため、メソッドを次のようにリファクタリングできます。

    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
    }
    

    タイピングのヒントを使用している場合は、メソッドを次のようにするのがより適切です

     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
     }
    

    parentIdを渡さなければならないことを本当に期待している場合は、代わりにtrycatchでメソッド呼び出し元をラップします

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



    1. NOTNULL制約を列に追加します

    2. 増加する文字と数字で構成されるID番号に使用するタイプ

    3. 特定のテーブルでのphpMyAdminの問題は、空白のwhereステートメントで行エラーを編集できません

    4. phpmyadminの奇妙なエラー、正常にインストールされましたが、まだ機能していません