<分区>
当我尝试保存简单表单时出现错误
错误 执行 'INSERT INTO mEvents (title, desc, dateTimeStart, dateTimeEnd, visibleFrom, visibleTo, timetype, locationName, miejsce) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)' 时发生异常参数 ["sdfsdf", "sd", "2014-01-05 11:11:31", "2014-01-05 11:11:31", "2014-01-05 00:00:00", "2014-01-05 00:00:00", "435", "dfgfg", null]:
SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有误;检查与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“desc、dateTimeStart、dateTimeEnd、visibleFrom、visibleTo、timetype、locationName”附近使用的正确语法 500 内部服务器错误 - DBALException 1 个链接异常:
实体:
/**
* CalendarEvent
* @ORM\Entity
* @ORM\Table(name="mEvents", indexes={
@ORM\Index(name="id", columns={"id"})
,@ORM\Index(name="time", columns={"dateTimeStart","dateTimeEnd"})
})
*/
class Event {
/**
* @var integer
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
* @ORM\Column(type="string", nullable=true)
*/
protected $title;
/**
* @var string
* @ORM\Column(type="string", nullable=true)
*/
protected $desc;
/**
* event start time
* @var int
* @ORM\Column(type="datetime")
*/
protected $dateTimeStart;
/**
* event end time
* @var int
* @ORM\Column(type="datetime")
*/
protected $dateTimeEnd;
/**
* @var int
* @ORM\Column(type="datetime")
*/
protected $visibleFrom;
/**
* @var int
* @ORM\Column(type="datetime")
*/
protected $visibleTo;
/**
* 1 jednodniowe, 2wielodniowe, 3 cykliczne, 4 zakresowe
* @var int
* @ORM\Column(type="smallint", length=2, nullable=true)
*/
protected $timetype;
/**
* Nazwa miejsca
* @var string
* @ORM\Column(type="string", nullable=true)
*/
protected $locationName;
/**
* miejsce
* @ORM\Column(type="integer", nullable=true)
* @ORM\ManyToOne(targetEntity="Miejsce",inversedBy="events")
* @ORM\JoinColumn(referencedColumnName="id")
*/
protected $miejsce;
表格:
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title', 'text')
->add('desc', 'text')
->add('dateTimeStart', 'datetime',array(
'format' => \IntlDateFormatter::SHORT,
'input' => 'datetime',
'widget' => 'single_text',
'data' => new \DateTime("now")))
->add('dateTimeEnd', 'datetime',array(
'format' => \IntlDateFormatter::SHORT,
'input' => 'datetime',
'widget' => 'single_text',
'data' => new \DateTime("now")))
->add('visibleFrom', 'date',array(
'input' => 'datetime',
'data' => new \DateTime("now")))
->add('visibleTo', 'date',array(
'input' => 'datetime',
'data' => new \DateTime("now")))
->add('timetype', 'text')
->add('locationName', 'text')
//->add('textadres', 'places_autocomplete')
//->add('mkeywordsId', 'text')
->add('save', 'submit')
;
}
Controller 编辑 Action
/**
* @Template
* @param string $id
* @return Response
*/
public function EditAddAction($id='')
{
/**
* @var $hotel Mmiejsce
*/
if($id)
$entity = $this->getDoctrine()
->getRepository('MiejsceCalendarBundle:Event')
->find($id);
else
$entity = new Event();
$form = $this->createForm(new EventType(), $entity);
$request = $this->getRequest();
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
}
return ['form'=>$form->createView()];
}