当数据库字段包含某些特殊字符时,Doctrine 2实体字段为NULL

时间:2014-03-09 13:01:08

标签: php mysql doctrine-orm jmsserializerbundle

获取Doctrine 2实体字段时为空,因为它在数据库中包含“ - ”(—)。

该字段是:

/*
 * @var string
 *
 * @ORM\Column(name="question", type="text", nullable=false)
 *
 * @Groups({"list", "details", "exercise_details"})
 * @Type("string")
 */

private $question;

使用以下代码完成提取:

$exercise = $exerciseRepo->findOneBy(array('id' => $id));
$this->response(json_decode($this->serializer->serialize($exercise, 'json', \JMS\Serializer\SerializationContext::create()->setGroups(array('exercise_details', 'details')));

当我从数据库中删除字符时,文本会正确显示。可能是什么问题以及如何解决它?

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但我遇到了同样的问题,我已经解决了这个问题:

charset: UTF8

在config.yml

dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8