我已经为表的创建创建了这个理论实体:
class testtable
{
/**
* @ORM\Column(type="integer", length=11, columnDefinition="INT(11) NOT NULL AUTO_INCREMENT")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="datetime", columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
*/
protected $date;
/**
* @ORM\Column(type="float", nullable=TRUE)
*/
protected $lat;
/**
* @ORM\Column(type="float", nullable=TRUE)
*/
protected $lng;
/**
* @ORM\Column(type="text")
*/
protected $log;现在,我想要两个floats (lat & lng)字段和一个float log字段,但是当我生成它时,我得到了两个double字段和一个longtext字段的不同情况
+----------------+-----------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-----------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| date | timestamp | NO | | CURRENT_TIMESTAMP | |
| lat | double | YES | | NULL | |
| lng | double | YES | | NULL | |
| log | longtext | NO | | NULL | |
+----------------+-----------+------+-----+-------------------+----------------+一切正常,但我想要两个float和一个text,而不是两个double和一个longtext。
我该如何修复它?
谢谢!
发布于 2014-03-18 19:13:36
找到解决方案,已解决!要强制mysql类型,我需要在@ORM声明中插入columnDefinition="TEXT“和columnDefinition="FLOAT”标记,如下所示:
/**
* @ORM\Column(type="float", nullable=TRUE, columnDefinition="FLOAT")
*/
protected $lng2;
.
.
.
/**
* @ORM\Column(type="text", columnDefinition="TEXT")
*/
protected $log2;所以mysql会给出正确的结果:
+----------------+-----------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-----------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
.
.
.
| lng2 | float | YES | | NULL | |
.
| log2 | text | YES | | NULL | |
+----------------+-----------+------+-----+-------------------+----------------+谢谢大家!
https://stackoverflow.com/questions/22476137
复制相似问题