【发布时间】:2014-01-05 10:14:39
【问题描述】:
当我尝试保存简单表单时出现错误
错误 使用参数 [“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”、空]:
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')
;
}
控制器编辑动作
/**
* @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()];
}
【问题讨论】: