将doctrine查询生成配置为小写

时间:2016-09-05 07:03:26

标签: database symfony doctrine

我在Unix上部署symfony项目时出现sql错误。实际上,查询对表名使用大写,而以前并非如此。在数据库中,表名是小写的。

是否有人知道您在何处配置生成查询的方式(大写或小写)

谢谢。

也许是Doctrine配置中的东西?

注意:我有一些新信息。

我要求在我知道它正在运行时从保存重建我的数据库。 我有一些错误,因为对于新代码,数据库必须与此时的数据略有不同,但我可以看到,在查询中,表的名称是小写的。 我在命令行中传递了我的新sql(与之前相同,加上一些小改动)。

\. path/to/my/sql

我启动了网站,并使用大写的表名进行查询。

知道吗?

实体的例子:

<?php

namespace MyBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * MyTable
 *
 * @ORM\Table(name="mytable")
 * @ORM\Entity(repositoryClass="MyBundle\Repository\MyClassRepository")
 */
class MyTable
{
  /**
   * @var string
   *
   * @ORM\Column(name="FIELD1, type="string", length=120, nullable=false)
   */
  private $field1;

  /**
   * @var string
   *
   * @ORM\Column(name="FIELD2", type="string", length=50, nullable=true)
   */
  private $field2

  /**
   * Set field1
   *
   * @param string $field1
   *
   * @return Tretb
   */
  public function setField1($field1)
  {
    $this->field1 = $field1;

    return $this;
  }

  /**
   * Get field1
   *
   * @return string
   */
  public function getField1()
  {
    return $this->field1;
  }

  /**
   * Set field2
   *
   * @param string $field2
   *
   * @return Tretb
   */
  public function setField2($field2)
  {
    $this->field2 = $field2;

    return $this;
  }

  /**
   * Get field2
   *
   * @return string
   */
  public function getField2()
  {
    return $this->field2;
  }
}

2 个答案:

答案 0 :(得分:0)

不知道你是否可以更普遍地配置它,但你可以为每个具有教义的实体定义表格表

/**
 * AppBundle\Entity\MyEntity
 *
 * @ORM\Table()
 * @ORM\Entity
 * @ORM\Table(name="mytable")
 */
class MyEntity
{

答案 1 :(得分:0)

您的MySQL实例是否支持小写表名? 要检查设置,请使用:

mysql> show variables like "lower_case%";

要更改设置,您需要更改mysql设置

lower_case_table_names = 1 or lower_case_table_names = 2

Source from Stackoverflow