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;
}
ändern Was ist die Fehlermeldung? –
$ data ['message'] ist nicht im Catch-Bereich definiert. –
Ich habe meinen Code @Andrej Ludinovskov bearbeitet. – shalin