2016-08-31 5 views
0

In meinem Code, wenn die Funktion einen Fehler wie z. B. Organisationsname erforderlich ist oder es bereits vorhanden ist, funktioniert der Catch-Block ordnungsgemäß. Aber im Erfolgsfall, obwohl die entsprechende Organisation eingefügt wurde, habe ich den Status 200 mit Fehlermeldung bekommen. Was ist der Fehler in meinem Code?Versuch Catch-Block funktioniert nicht mit Erfolg zurück

insertTenancy ist die in Mycontroller geschriebene Funktion.

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

Nach Funktion in routerContainer geschrieben

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

ändern Was ist die Fehlermeldung? –

+0

$ data ['message'] ist nicht im Catch-Bereich definiert. –

+0

Ich habe meinen Code @Andrej Ludinovskov bearbeitet. – shalin

Antwort

0

erstellen Sie ein neues Array dann fügen Sie falsch den Index 'Erfolg'.

Warum also sollte

$data['message'] 

definiert werden?

Vielleicht möchten Sie Ihre

$error 

in

$data['message'] 
+0

Es ist nicht der Fehler. Ich habe meinen Code @Simon Müller korrigiert. Bitte beachten Sie den bearbeiteten Code – shalin

+0

Warum schreiben Sie nicht die Methodenaufruf instad ein neues Array verwenden –

Verwandte Themen