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

Posted

技术标签:

【中文标题】尝试获取关系中的数据时出现 Symfony 错误【英文标题】:Symfony Error when trying to get data in a relationship 【发布时间】:2016-03-12 10:43:33 【问题描述】:

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.

这是我的职业类别:

<?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】:

只调用一次“GetDoctrine”

-> 找到你的列表对象

-> 从 $lista 对象访问 idProposta

-> 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));

【讨论】:

Sorry lista 也是一个查找所有的查询。我更新了我的功能,所以你可以看到它是什么。你的解决方案也不起作用:( 内部控制器你可以访问 $listaVotacions->getIdProposta()->getWhateverName(); 内部树枝模板 listaVotacions.idProposal.whateverName 问题是我无法获取值。当我在没有关系的类中 findBySomething 工作正常时,当我尝试在有关系的类中使用 findBySomething 时,服务器正在下降并且在 php 调试中没有显示任何错误。 我更新我的答案检查查询并告诉我这是否有效

以上是关于尝试获取关系中的数据时出现 Symfony 错误的主要内容,如果未能解决你的问题,请参考以下文章

访问核心数据中的子对象时出现关系错误

cURL 错误 60:尝试使用 symfony 时出现 ssl 认证问题

当我尝试使用 symfony 创建实体时出现 Aborted 错误消息 [重复]

尝试使用 symfony 创建 Web 服务时出现问题

使用 symfony 和 MAMP 时出现 PDO 连接错误

当我尝试使用可编辑选项更新数据时出现 configureListFields 问题