如何使用角度前端将字符串数组传递给PHP Slim API

时间:2019-06-12 13:57:40

标签: php angular rest slim

我正在使用angular和php slim创建基于Web的系统。现在,我想将字符串数组发送到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);
    });

Slim 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 :(得分:0)

您应该使用HttpClient发出POST请求

constructor(private http: HttpClient) {}


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

在后端,您可以使用

访问电子邮件
$request->email;

别忘了更改发布路线的类型

$app->post(...)