Yii 2 restapi的getBodyParams()无法加载参数(Yii::$app->getRequest()->getBodyParams(),'');来自React本地帖子

xzabzqsa  于 2022-11-09  发布在  React
关注(0)|答案(1)|浏览(160)

我怎么才能从Post react native获得param?Post react native我尝试在这里发送一些数据到请求yii:

let  body =  {
                demande_title:demande_title,
                created_Date:created_Date,
                updated_Date:updated_Date,
                demande_Type:demande_Type,
                demande_Action:demande_Action,
                demande_status:demande_status,
                demande_content:demande_content,
                demande_color:demande_color,
                utf_utilisateur_front_id:1

            };
            let response = await fetch(url, {
                method: "POST",
                headers: {
                    Authorization: `Bearer ${getState().auth.token}`,
                    "Content-Type": "application/json",
                },
                body: JSON.stringify(body),
            });
if (!response.ok) {
                throw new Error("Something went wrong !");
            }

我想用Yii加载参数并插入(创建新的需求)数据库中的数据。代码Yii:

public function actionDemandeCreate()
{
    $demande = new Demande(); 
    $demande->load(Yii::$app->getRequest()->getBodyParams(), '');
    if ($demande->save()) {
        Yii::$app->response->statusCode = 201;
        return [
            'demande_id'=>$demande->id,
            'demande_title'=>$demande->demande_title,
            'created_Date'=>$demande->created_Date,
            'updated_Date'=>$demande->updated_Date,
            'demande_Type'=>$demande->demande_Type,
            'demande_color'=>$demande->demande_color,
            'demande_Action'=>$demande->demande_Action,
            'demande_status'=>$demande->demande_status,
            'demande_content'=> $demande->demande_content,
        ];
    } else {
        Yii::error($demande->getErrors(), __METHOD__);
        throw new ServerErrorHttpException('Une erreur s\'est produite lors de la création. Merci de réessayer.');         
}
}

我的响应有错误:错误:发生错误

dauxcl2d

dauxcl2d1#

已解决:

let  body =  {
            "demande_title":demande_title,
            "created_Date":created_Date,
            "updated_Date":updated_Date,
            "demande_Type":demande_Type,
            "demande_Action":demande_Action,
            "demande_status":demande_status,
            "demande_content":demande_content,
            "demande_color":demande_color,
            "utf_utilisateur_front_id":1,     };
        let response = await fetch(url, {
            method: "POST",
            headers: {
                Authorization: `Bearer ${getState().auth.token}`,
                "Content-Type": "application/json",
            },
            body: JSON.stringify(body),});
        if (!response.ok) {
            throw new Error("Something went wrong !");}

Yii:

$demande = new Demande();

    $params = Yii::$app->getRequest()->getBodyParams();
    Yii::trace(print_r($params, true), __METHOD__);
    $demande->load($params, '');

   if ($demande->save()) {
        Yii::$app->response->statusCode = 201;
        return 
        [
    'demande_id'=>$demande->demande_id,
    'demande_title'=>$demande->demande_title,
    'created_Date'=>$demande->created_Date,
    'updated_Date'=>$demande->updated_Date,
    'demande_Type'=>$demande->demande_Type,
    'demande_color'=>$demande->demande_color,
    'demande_Action'=>$demande->demande_Action,
    'demande_status'=>$demande->demande_status,
    'demande_content'=> $demande->demande_content,
];
    } else {
        Yii::error($demande->getErrors(), __METHOD__);
        throw new ServerErrorHttpException('Une erreur s\'est produite lors de la création. Merci de réessayer.');         
}

相关问题