我有这个YAML定义实体:
Entity\Visit:
type: entity
table: visit
fields:
date:
type: date
id: true
count:
type: integer
nullable: true
options:
unsigned: true
default: 1
lifecycleCallbacks: { }
创建日期字段:
/**
* @var \DateTime
*
* @ORM\Column(name="date", type="date")
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $date;
如果我尝试以这种方式插入新记录:
$date = new \DateTime('now');
$visit = new \Entity\Visit();
$visit->setDate($date);
$visit->setCount(1);
$em->persist($visit);
$em->flush();
我有这个错误:
UnitOfWork.php第1413行中的ContextErrorException:可捕获致命 错误:类DateTime的对象无法转换为字符串
我这样做:
$date = new \DateTime('now');
$date = $date->format('Y-m-d');
显示此错误:
DateType.php第53行中的FatalThrowableError:调用成员函数 string上的format()
有人可以帮助我使用Doctrine2插入(或更新)'日期'字段吗?感谢。
更新:数据库中的字段必须是“日期”字段。
答案 0 :(得分:1)
最后,我自己发现了问题:问题是因为主键是日期列。似乎Doctrine不喜欢那些东西。
我的新YML文件:
Entity\Visit:
type: entity
table: visit
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
options:
unsigned: true
date:
type: date
unique: true
count:
type: integer
nullable: true
options:
unsigned: true
default: 1
lifecycleCallbacks: { }
现在,我可以这样做:
$date = new \DateTime('now');
$visit = new \Entity\Visit();
$visit->setDate($date);
$visit->setCount(1);
$em->persist($visit);
$em->flush();
答案 1 :(得分:0)
请尝试使用以下代码:
<telerik:RadAutoCompleteBox RenderMode="Lightweight" runat="server" ID="CommentsTB1" EmptyMessage="Please type here"
DataSourceID="SqlDataSource1" DataTextField="Comments" InputType="Text" Width="350" DropDownWidth="150px" Delimiter=" ">
</telerik:RadAutoCompleteBox>