我是symfony的新手,我需要一些建议

时间:2015-08-17 17:53:14

标签: symfony symfony-2.7

我有一个关于Symfony应用程序的问题,我想把控制器的“用户名”或“id”作为输入,并接收我的表“user”中的信息以及另外两个表例如:A用户有一个或多个级别,并且它必须获得积分才能解锁一个级别,我希望我的dan主页显示用户名及其所具有的级别和范围,我是初学者而不是来了解书籍symfony我使用的是PARALLEL“symfony_book”和“symfony_cook_book”以及教程youtube我可以阻止,这里是我的cotroler的代码 “

/**  
* @Route("/{id}")      
* @Template()      
* @param $id=0      
* @return array      
*/     
public function getUserAction($id)     
{          
     $username = $this->getDoctrine()             
         ->getRepository('voltaireGeneralBundle:FosUser')              
         ->find($id);         
     if (!$username) {             
         throw $this->createNotFoundException('No user found for id '.$id);
     }         
     //return ['id' => $id,'username' => $username];         
     return array('username' => $username);              
}

我必须使用类之间的关系

use Doctrine\Common\Collections\ArrayCollection;
class Experience {      
    /**      
    * @ORM\OneToMany(targetEntity="FosUser", mappedBy="experience")      
    */     
    protected $fosUsers;

    public function __construct()     
    {
        $this->fosUsers = new ArrayCollection();
    }
}

class FosUser {      
    /**      
    * @ORM\ManyToOne(targetEntity="Experience", inversedBy="fosUsers")      
    * @ORM\JoinColumn(name="experience_id", referencedColumnName="id")      
    */     
    protected $fosUsers;   
}

我一直都有错误

1 个答案:

答案 0 :(得分:0)

在Symfony中你不能在Action函数中返回一个数组!,Action函数必须总是返回一个Response对象...所以如果你想在Symfony中将数据返回给浏览器,Action函数必须返回一个包含在Response对象中的字符串。 在您的控制器代码中,要将数组返回到浏览器,您可以将数组序列化为JSON并将其发送回浏览器:

public function getUserAction($id)     
{          
     $username = $this->getDoctrine()             
         ->getRepository('voltaireGeneralBundle:FosUser')              
         ->find($id);         
     if (!$username) {             
         throw $this->createNotFoundException('No user found for id '.$id);
     }                  
     return new Response(json_encode(array('username' => $username)));              
}

我建议您阅读有关HTTP协议,PHP和Symfony的更多信息。