2016-08-31 71 views
0

在我的代碼中,當函數拋出一個錯誤,如組織名稱是必需的或它已被讀取存在時,catch塊可正常工作。但在成功的情況下,儘管插入了相應的組織,但我得到了錯誤消息200的狀態。我的代碼中有什麼錯誤。嘗試catch塊不成功返回

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; 
    } 
+0

什麼是錯誤訊息? –

+0

$ data ['message']沒有在catch部分定義。 –

+0

我編輯了我的代碼@Andrej Ludinovskov。 – shalin

回答

0

您創建一個新的陣列功能,之後再添加虛假的指數 '成功'。

那麼爲什麼

$data['message'] 

界定?

也許你想改變你的

$error 

$data['message'] 
+0

它不是錯誤。我已更正我的代碼@SimonMüller。請參閱編輯的代碼 – shalin

+0

爲什麼不寫入使用新數組的方法調用instad –