Symfony 2教义导出到JSON [英] Symfony 2 Doctrine export to JSON

查看:141
本文介绍了Symfony 2教义导出到JSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Symfony 2和Doctrine 2为iOS应用程序创建一个Web服务(JSON)。



要获取我的实体,我可以:

  $ articles = $ this-> getDoctrine() - > getRepository('UdoPaddujourBundle:MenuArticle') - > findAll(); 

我必须告诉你:

  $ article = array(); 
$ article = $ articles-> toArray();

给我以下错误:

 致命错误:调用非对象上的成员函数toArray()

同样的事情发生在

  $ article = $ articles-> exportTo('json'); 






我如何创建一个json响应? p>

Kind Regards,
Cearnau Dan



编辑:
var_dump($ articles)=

  array(18){
[0] =>
object(Udo\PaddujourBundle\Entity\MenuArticle)#50(4){
[id:Udo\PaddujourBundle\Entity\MenuArticle:private] =>
int(1)
[name:Udo\PaddujourBundle\Entity\MenuArticle:private] =>
string(17)我的文章名称1
[description:Udo\PaddujourBundle\Entity\MenuArticle:private] =>
string(26)我的文章描述1
[price:Udo\PaddujourBundle\Entity\MenuArticle:private] =>
float(20)
}
[1] => ...



- 后退编辑



如何循环遍历所有的属性名称?
这是我有的:

  $ myarray = array(); 
$ myArray [name] = array();
$ myArray [description] = array();
foreach($ article in $ article)
{
array_push($ myArray [name],$ article-> getName());
array_push($ myArray [description],$ article-> getDescription());
}


解决方案

如果您使用教义查询你也可以这样做:

  $ em = $ this-> getDoctrine() - > getEntityManager(); 
$ query = $ em-> createQuery('SELECT ma FROM UdoPaddujourBundle:MenuArticle ma ... etc');
$ myArray = $ query-> getArrayResult();

然后json_encode($ myArray);请参阅这里了解更多细节


I'm using Symfony 2 with Doctrine 2 to create a web service(JSON) for an iOS app.

To fetch my entity i do:

$articles = $this->getDoctrine()->getRepository('UdoPaddujourBundle:MenuArticle')->findAll();

I must tell you that:

$article = array();
$article = $articles->toArray();

Gives me the following error:

Fatal error: Call to a member function toArray() on a non-object

Same thing happends with

$article = $articles->exportTo('json');


How can i create a json response ?

Kind Regards, Cearnau Dan

Edit: var_dump($articles) =

array(18) {
   [0]=>
     object(Udo\PaddujourBundle\Entity\MenuArticle)#50 (4) {
    ["id":"Udo\PaddujourBundle\Entity\MenuArticle":private]=>
    int(1)
    ["name":"Udo\PaddujourBundle\Entity\MenuArticle":private]=>
    string(17) "My Article Name 1"
    ["description":"Udo\PaddujourBundle\Entity\MenuArticle":private]=>
    string(26) "My Article Description 1"
    ["price":"Udo\PaddujourBundle\Entity\MenuArticle":private]=>
    float(20)
    }
   [1]=> ...

- LATER EDIT

How can i loop through all the "property names" ? This is what i've got:

$myarray=array(); 
$myArray["name"]=array(); 
$myArray["description"]=array(); 
foreach($articles in $article) 
{ 
  array_push($myArray["name"], $article->getName());
  array_push($myArray["description"], $article->getDescription()); 
}

解决方案

If you use a doctrine query you can also do this:

  $em = $this->getDoctrine()->getEntityManager();
  $query = $em->createQuery('SELECT ma FROM UdoPaddujourBundle:MenuArticle ma ...etc');
  $myArray = $query->getArrayResult();

and then json_encode($myArray); See here for more details

这篇关于Symfony 2教义导出到JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆