Как передать массив строк в php slim api с помощью углового интерфейса - PullRequest
0 голосов
/ 12 июня 2019

Я использую angular и php slim для создания веб-системы.Теперь я хочу отправить массив строк в php slim api.И получить доступ к нему из бэкэнда.Я использую следующий код на данный момент.Но он не работает правильно.

Угловой код переднего конца.

    var emails  = ['sampleemail@gmail.com','anotheremail96@gmail.com'];
    this._db.sendFirstEmailToAllEmp(emails).subscribe((result : any) => {
      console.log(result);
    },(error : any) => {
      console.log(error);
    });

Тонкий код PHP API-интерфейса

// Send First Mail When Customer Send A Job
$app->get('/test', function (Request $request, Response $response) {
    try{
        // Get The Array 
        $result = array();
        $emails = $request->getParsedBody();
        $length = $request->getContentLength();
        for($i=0;$i<$length;$i++){
            $tempEmail = $emails[$i];
            $result[$i] = $tempEmail;
        }
        // Return Result
        return $response->withStatus(200)->withHeader('Content-Type', 'application/json')->write(json_encode($result));
    } catch(Exception $ex){
        $result = array();
        $result["TYPE"] = "ERROR";
        $result["CODE"] = $ex->getCode();
        $result["MSG"] = $ex->getMessage();
        $result["FILE"] = $ex->getFile();
        $result["LINE"] = $ex->getLine();
        return $response->withStatus(400)->withHeader('Content-Type', 'application/json')->write(json_encode($result));
    }
});

Я хочу получить эти электронные письма в концеибо я могу делать другие вещи, связанные с массивом.

1 Ответ

0 голосов
/ 12 июня 2019

Вы должны использовать HttpClient, чтобы сделать запрос POST

constructor(private http: HttpClient) {}


sendEmailFunction(email) { 
   this.http.post('yourUrl', {email}).subscribe(); 
}

И в вашем бэкэнде вы можете получить доступ к электронной почте с

$request->email;

Не забудьте изменить тип маршрута на сообщение

$app->post(...)
...