Symfony / Doctrine:我可以查询我的数据库,但只检索主键数据

时间:2016-07-19 08:40:19

标签: php symfony doctrine-orm doctrine-query

因此下面的DQL可以正常工作但是返回的记录存在问题。它仅显示主键数据。所有其他字段都为空/ null。

我知道我的代码与我的Oracle数据库通信正常,因为如果我拼错了表名,它将返回异常。我也尝试使用MySQL(我将Oracle表导出为CSV并将其导入MySQL)同样的事情发生了。 Oracle和MySQL表的字段定义都是相同的。

这是我从Doctrine转储中得到的。这仅适用于单个记录。 但如果我检索所有记录,结果都是一样的。

array(1) { [0]=> object(stdClass)#64 (5) { ["__CLASS__"]=> string(24) "AppBundle\Entity\Student" ["sspnumber"]=> int(71XXXXXX) ["student_id"]=> NULL ["course_appn_year"]=> NULL ["satac_id"]=> NULL } }

这是从Oracle看到的记录内容(出于隐私原因不得不隐藏信息):

enter image description here

任何想法我可能做错了什么?谢谢! :)

Edit1:如果我决定只检索student_id字段,我会从Symfony收到“semanctical error”。即使我是100%,字段名称拼写也是正确的。

enter image description here

Edit2:如果这很重要,请使用Symfony 2.8.8。我之所以选择这个是因为我觉得这是LTS版本。

Edit3 我总是运行php app / console cache:在通过gut同步我的资源后清除

我的控制器代码:

//$myquery = $this->getDoctrine()->getManager()
//  ->createQuery("SELECT s FROM AppBundle:Student s");

$myquery = $this->getDoctrine()->getManager()
    ->createQuery("SELECT s FROM AppBundle:Student s WHERE s.sspnumber = :sspnumber")
    ->setParameter("sspnumber", 711XXXXXX);

\Doctrine\Common\Util\Debug::dump($myquery->getResult());exit();

我的实体类

<?php
// src/AppBundle/Entity/Student.php
namespace AppBundle\Entity;

use Doctrine\ORM\Mapping;

/**
 * @Mapping\Entity
 * @Mapping\Table(name="students")
 */
class Student {
    /**
     * @Mapping\Column(type="integer", name="ssp_no")
     * @Mapping\Id
     * @Mapping\GeneratedValue(strategy="AUTO")
     */
    private $sspnumber;

    /*
     * @Mapping\Column(type="string", name="student_id")
     */
    private $student_id;

    /*
     * @Mapping\Column(type="integer", name="course_appn_year")
     */
    private $course_appn_year;

    /*
     * @Mapping\Column(type="string", name="satac_id")
     */
    private $satac_id;
}

0 个答案:

没有答案