将POST数据从Symfony发送到Yii控制器

时间:2017-12-04 09:13:05

标签: php symfony yii

我有Yii2项目。在那里我也有Symfony写的api。 在Symfony部分,我在类中有方法向Yii控制器发送请求。

    $buzz = $this->container->get('buzz');
    $buzz->getClient()->setVerifyHost(false);
    $buzz->getClient()->setVerifyPeer(false);
    $buzz->getClient()->setTimeOut(false);
    $url = $this->container->getParameter('integra_sync_prices');

    $sendResult = $buzz->post($url, array('authorization' => $this->container->getParameter('load_token')), array('products' => 
    json_encode($productPrices)));
    $resultJson = json_decode($sendResult->getContent(), true);

    if (isset($resultJson['error']))
        throw new \Exception('Site: '.$resultJson['error'], 500);
class IntegraController extends Controller{
    public function actionIndex()
    {
        Yii::$app->response->format = Response::FORMAT_JSON;
        $headers = Yii::$app->request->getHeaders();

    foreach ($headers as $key => $value) {
        if(strtolower(trim($key)) == 'authorization') {
            $token = trim($value[0]);
            break;
        }
    }

    $products = json_decode(Yii::$app->request->post('products'));
    $post_products = Yii::$app->request->post('products');
    if('111' == $token) {

        if(isset($post_products) && $products) {
            foreach ($products as $product) {

                echo $product->price." = ".$product->productId."<br>";

                Yii::$app->db->createCommand("UPDATE oc_product SET quantity = '" . (int)$product->quantity . "', price = '" . (float)$product->price . "' WHERE product_id = '" . (int)$product->productId . "'")->execute();
            }
            $json['success'] = 'complete';
        } else {
            $json['error'] = 'empty data';
        }
    } else {
        $json['error'] = 'authorization error';
    }

    Yii::$app->controller->enableCsrfValidation = false;
    echo json_encode($json);
    }

我希望我的数据库中的数据将由此控制器更新。但没有任何变化。 我做错了什么?也许我应该再发一些标题?非常感谢 )

0 个答案:

没有答案