• 02-06-2021, 11:09:25
    #1
    Merhaba arkadaslar,
     try {
         $this->conn = new PDO("mysql:host=$this->host;dbname=$this->db_name",$this->username, $this->password);
          $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     } catch (PDOException $th) {
          echo $th->getMessage();
     }
    Bu sekilde bir kod yapısına sahibim, catch'de yakaladığım hata mesajlarını;
    {
    "success": false,
    "message": $th->getMessage()
    }
    olacak sekilde json olarak döndürmek istiyorum fakat bir türlü yapamadım, nasıl yapabilirim?
    Simdiden cok tesekkürler.
  • 02-06-2021, 11:16:55
    #2
    echo '{ "success": false, "message": '.$th->getMessage().' }'
    Diğer türlü de;

    $messageArr = array('success ' =>false , 'message' => $th->getMessage() );
    echo json_encode($messageArr);
  • 02-06-2021, 11:24:49
    #3
    Array içine değer yazın daha sonrada json encode endin.
  • 02-06-2021, 11:31:30
    #4
    voLwy adlı üyeden alıntı: mesajı görüntüle
    echo '{ "success": false, "message": '.$th->getMessage().' }'
    Diğer türlü de;

    $messageArr = array('success ' =>false , 'message' => $th->getMessage() );
    echo json_encode($messageArr);
    berkaykrx adlı üyeden alıntı: mesajı görüntüle
    Array içine değer yazın daha sonrada json encode endin.
    encode ettiğimde maalesef hiçbir çıktı alamıyorum..
  • 02-06-2021, 11:42:01
    #5
    Şöyle bir basit sınıf yazın:

    <?php
    
    class CustomException {
        
        public static function message(array $message = null, int $code = 200) {
    
            @header("Content-Type:application/json;charset=utf-8");
    
            http_response_code($code);
    
            return json_encode($message);
    
        }
    }
    ardından istediğiniz herhangi bir yerde şu şekilde kullanın:

    echo CustomException::message(['message'=>'Herhangi bir mesaj'], 401);
    Örneğin sizin istediğiniz yerde şu şekilde kullanabilirsiniz:

    echo CustomException::message(['message'=>$e->getMessage()], 401);
    Ekran görüntüsü:
  • 02-06-2021, 11:50:06
    #6
    fatihemre adlı üyeden alıntı: mesajı görüntüle
    Şöyle bir basit sınıf yazın:

    <?php
    
    class CustomException {
        
        public static function message(array $message = null, int $code = 200) {
    
            @header("Content-Type:application/json;charset=utf-8");
    
            http_response_code($code);
    
            return json_encode($message);
    
        }
    }
    ardından istediğiniz herhangi bir yerde şu şekilde kullanın:

    echo CustomException::message(['message'=>'Herhangi bir mesaj'], 401);
    Örneğin sizin istediğiniz yerde şu şekilde kullanabilirsiniz:

    echo CustomException::message(['message'=>$e->getMessage()], 401);
    Ekran görüntüsü:
    Cok tesekkür ederim dediğiniz yapıya gectim. Güzel de calısıyor fakat;
    $th->getMessage()'i handle edemiyor. Nedenini anlayamadım dokumantasyonunda string döndüğü yazıyor fakat response 200 dönmesine rağmen data dönmüyor.
    echo CustomException::message(['message' => $th->getMessage()], 200); // boş çıktı
    echo CustomException::message(['message' => "deneme", 200); // {message: "deneme"}
  • 02-06-2021, 11:56:20
    #7
    tolgaand adlı üyeden alıntı: mesajı görüntüle
    Cok tesekkür ederim dediğiniz yapıya gectim. Güzel de calısıyor fakat;
    $th->getMessage()'i handle edemiyor. Nedenini anlayamadım dokumantasyonunda string döndüğü yazıyor fakat response 200 dönmesine rağmen data dönmüyor.
    echo CustomException::message(['message' => $th->getMessage()], 200); // boş çıktı
    echo CustomException::message(['message' => "deneme", 200); // {message: "deneme"}
    Catch içerisine aşağıdaki gibi print_r ile $th'ı basıp çıktıyı buraya yazar mısınız?
    <?php
    print_r($th);
  • 02-06-2021, 11:59:58
    #8
    fatihemre adlı üyeden alıntı: mesajı görüntüle
    Catch içerisine aşağıdaki gibi print_r ile $th'ı basıp çıktıyı buraya yazar mısınız?
    <?php
    print_r($th);
    tabi buyrun; https://paste.ubuntu.com/p/8PBGCjdyX8/
  • 02-06-2021, 12:10:30
    #9
    tolgaand adlı üyeden alıntı: mesajı görüntüle
    Burada bir sorun görünmüyor, tüm kodunuz bu kadar mı? Farklı bir yerden etkilenip mesajın içi boşalıyor olabilir. Kodunuz özel ise pm ile de iletebilirsiniz.