在symphony3中将API中的数据插入数据库

时间:2016-11-12 01:35:03

标签: php doctrine symfony

我正在编写一个调用api然后返回一些数据的应用程序。但是我仍然坚持使用API​​中的数据填充数据库。我尝试查看解码后的json对象数组,但由于某种原因会抛出错误。我的代码如下:

class DefaultController extends Controller
{
    public function indexAction()
    {
        $client = new \GuzzleHttp\Client();
        $response = $client->request('GET', API);
        $data = json_decode($response->getBody()->getContents(), true);

        $request = new Request();
        foreach ($data as $data) {
          $request->setName($data['name']);
        }

        $em = $this->getDoctrine()->getManager();

        $em->persist($request);
        $em->flush();

        return new Response('Saved new product with id '.$request->getId());
        return $this->render('ApiBundle:Default:index.html.twig');
    }

由于某种原因,循环不起作用。是否有理由说这个循环不起作用并且有任何解决方法?

1 个答案:

答案 0 :(得分:1)

不确定,但在你的for循环中,你使用'$ data'两次。相反应该(使用$ d代替):

foreach ($data as $d) {
   $request->setName($d['name']);
}

此外,您可以尝试转储$ data以查看它包含的内容。