0

私のコードでは、関数が組織名が必要である、または既に存在するなどのエラーをスローすると、catch ブロックは正しく機能します。しかし、成功の場合、該当する組織が挿入されているにもかかわらず、エラー メッセージで 200 のステータスを取得しました。私のコードの間違いは何ですか。

insertTenancy は Mycontroller に記述された関数です。

 public function insertTenancy($data,$user, $res)
{

    $org_name = $data['org_name'];
    $queryString = "SELECT * FROM organisation WHERE name = ? and user_id =?";
    $query = $this->db->prepare($queryString);
    $query->execute([$org_name,$user]);

    if($query->fetch(\PDO::FETCH_ASSOC)){
        //throw new Exception('This organisation is already in use');
        return CCommon::prepareError($res, 'This organisation is already in use', 403);
    }

     $insertOrg = "INSERT INTO organisation (currency_id,name,user_id) VALUES (1,:name,:user_id)";

        $insertOrgname = $this->db->prepare($insertOrg);
        $insertOrgname->bindParam(':name', $org_name);
        $insertOrgname->bindParam(':user_id', $user_id);
        $insertOrgname->execute();
        $lastorgId = $this->db->lastInsertId();
        return $lastorgId;
 }

routerContainer に記述された次の関数

try
    {
        $postData = $request->getParsedBody();
        $currentUser = $this->user;
        $data = array();
        $data = $this->MyController->insertTenancy($postData,$currentUser,$response);
            echo json_encode($data);
            exit;
    }
    catch (Exception $e)
    {
        $data = array();
        $data['success'] = false;
        $data['message'] = $e->getMessage();
        return CBCommon::prepareError($response, $data['message'], 403);
        exit;
    }
4

1 に答える 1