我有一個表名博客下面是它的結構。symfony2 + doctrine在學說中插入值
FieldName Type
Id int(5)
blog_title string(255)
blog_url string(255)
blog_desc text
image string(255)
tags string(255)
blog_created_at Date
blog_status string(1)
我在控制器中爲此表創建了一個表單。
public function addAction()
{
$entity = new Blog();
$form = $this->createFormBuilder()
->add('blog_title')
->add('blog_desc' ,'textarea')
->add('blog_url')
->add('image')
->add('tags')
->add('blog_status')
->getForm();
$request = $this->getRequest();
if ($request->getMethod() == 'POST')
{
$form->bindRequest($request);
if ($form->isValid())
{
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('admin_index'));
}
}
return $this->render('AdminBlogBundle:default:add.html.twig',array(
'form' => $form->createView(),
));
}
我想進入這個形式到我的數據庫的價值,但它給了我
An exception occurred while executing 'INSERT INTO Blog (blog_title, blog_desc,
blog_url, image, tags, blog_created_at, blog_status) VALUES (?, ?, ?, ?, ?, ?, ?)'
with params {"1":null,"2":null,"3":null,"4":null,"5":null,"6":null,"7":null}:
所有這些我是從形式張貼值的誤差請求對象數組中我得到這即時通訊調用print_r($ request);但綁定它給我這個錯誤。所以請幫助我。
我的問題是,當我提交表單時,它需要所有的字段同時插入到MySQL表中。而我只有6個字段,因爲blog_created_date總是自動插入。目前我不想插入所有7字段到數據庫我只想插入六個字段到數據庫。而不知道如何處理symfony和doctrine – 2013-03-09 11:36:07
那麼,從你提供的錯誤,沒有什麼是數據庫。所以,我的答案解決了這個問題。 – 2013-03-09 11:50:34
要解決日期字段問題,請在您的實體中將'$ createdAt'設置爲'new \ DateTime'的構造函數。那麼您不必在表單中提供日期。但是Doctrine會將它傳遞給數據庫 - 即使它只是'null'。 – 2013-03-09 11:51:50