我已经为表格创建了这个学说实体:
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
字段,但是当我生成它时,我会#39 ;我有两个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
。
我该如何解决?
谢谢你!答案 0 :(得分:1)
找到解决方案,已解决! 要强制mysql类型,我需要插入columnDefinition =" TEXT"和columnDefinition =" FLOAT"像这样标记@ORM声明:
/**
* @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 | |
+----------------+-----------+------+-----+-------------------+----------------+
谢谢大家!