【发布时间】:2011-10-24 04:53:39
【问题描述】:
我正在使用 Symfony 2 和 Doctrine 2 为 iOS 应用程序创建 Web 服务 (JSON)。
要获取我的实体,我会这样做:
$articles = $this->getDoctrine()->getRepository('UdoPaddujourBundle:MenuArticle')->findAll();
我必须告诉你:
$article = array();
$article = $articles->toArray();
给我以下错误:
Fatal error: Call to a member function toArray() on a non-object
同样的事情发生在
$article = $articles->exportTo('json');
如何创建 json 响应?
亲切的问候, 卡瑙丹
编辑: 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]=> ...
- 稍后编辑
如何遍历所有“属性名称”? 这就是我所拥有的:
$myarray=array();
$myArray["name"]=array();
$myArray["description"]=array();
foreach($articles in $article)
{
array_push($myArray["name"], $article->getName());
array_push($myArray["description"], $article->getDescription());
}
【问题讨论】:
-
什么给了你
var_dump($articles);? -
array(18) { [0]=> 对象(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(24) "我的文章描述 1" ["price":"Udo\PaddujourBundle\Entity\MenuArticle":private]=> float(20) } [1]=> 等等直到 [17]
-
什么给了你
json_encode($articles);? -
$articles已经是MenuArticle对象的数组。 -
json_encode($articles) 给出:[{},{},{},{},{},{},{},{},{}]。我认为 json_encode 想要一个字符串数组而不是对象数组。
标签: php web-services json doctrine symfony