尝试获取关系中的数据时出现Symfony错误

时间:2016-03-12 10:43:33

标签: php mysql symfony orm doctrine-orm

Symfony正在折磨我的头脑。我正在尝试从表中获取数据,其中列将关系与另一个表中的id相关联。那是我的控制器功能:

    /**
 * @Route("/proposta/{id}", defaults={"id"=null})
 */
public function mostraAction($id) {
    $model = $this->getDoctrine()->getManager(); 
    $lista = $model->getRepository('AppBundle:Propostes')->find($id);

    $em = $this->getDoctrine()->getManager();
    $listaVotacions = $em->getRepository('AppBundle:Votacions')->findByIdProposta($id);

    return $this->render(':Proposta:index.html.php',
    array('lista'=>$lista,'listaVotacions'=>$listaVotacions));
}

这不起作用,当我执行此功能时,我的服务器掉了,我收到了这个错误:

[ERROR] Built-in server terminated unexpectedly.

那是我的Votacions课程:

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Votacions
 *
 * @ORM\Table(name="votacions")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\VotacionsRepository")
 */
class Votacions
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity="Propostes")
     */
    private $idProposta;

    /**
     * @ORM\ManyToOne(targetEntity="Usuaris")
     */
    private $idUsuari;

    /**
     * @var bool
     *
     * @ORM\Column(name="vot", type="boolean", nullable=true)
     */
    private $vot;


    /**
     * Get id
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set idProposta
     *
     * @param integer $idProposta
     *
     * @return Votacions
     */
    public function setIdProposta($idProposta)
    {
        $this->idProposta = $idProposta;

        return $this;
    }

    /**
     * Get idProposta
     *
     * @return int
     */
    public function getIdProposta()
    {
        return $this->idProposta;
    }

    /**
     * Set idUsuari
     *
     * @param integer $idUsuari
     *
     * @return Votacions
     */
    public function setIdUsuari($idUsuari)
    {
        $this->idUsuari = $idUsuari;

        return $this;
    }

    /**
     * Get idUsuari
     *
     * @return int
     */
    public function getIdUsuari()
    {
        return $this->idUsuari;
    }

    /**
     * Set vot
     *
     * @param boolean $vot
     *
     * @return Votacions
     */
    public function setVot($vot)
    {
        $this->vot = $vot;

        return $this;
    }

    /**
     * Get vot
     *
     * @return bool
     */
    public function getVot()
    {
        return $this->vot;
    }
}

这是我的存储库Votacions:

namespace AppBundle\Entity;

use Doctrine\ORM\EntityRepository;

class VotacionsRepository extends EntityRepository
{
    public function findByIdProposta($id)
    {
        return $this->getEntityManager()
                ->createQuery(
                    'SELECT * FROM AppBundle:Votacions WHERE idProposta ='.$id
                )->getResult();
    }
}

有人可以帮助我:(?

非常感谢你。

卡尔斯

1 个答案:

答案 0 :(得分:0)

只调用一次“GetDoctrine”

- &GT;找到你的lista对象

- &GT;从$ lista对象访问idProposta

- &GT;来自Proposta实体的ID

public function mostraAction($id) {
$model = $this->getDoctrine()->getManager(); 
$lista = $model->getRepository('AppBundle:Votacions')->find($id);

$lista->getIdProposta()->getId();
 //..
return $this->render(':Proposta:index.html.php',
array('lista'=>$lista,'listaVotacions'=>$listaVotacions));

}