1

我有一个表名博客下面是它的结构。

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); 但是在绑定时它给了我这个错误。所以请帮助我。

4

3 回答 3

1

您必须将您的实体传递给 createFormBuilder 方法,否则表单构建器不知道它必须将表单字段映射到实体。像这样:

// ...
$form = $this->createFormBuilder($entity)
// ...

这一切都在文档中:http ://symfony.com/doc/current/book/forms.html#building-the-form

于 2013-03-09T11:25:29.343 回答
0

您必须像这样将模型对象传递给构建器:

$form = $this->createFormBuilder()
    // ...
    ->setData($entity)
    ->getForm();

或这个:

$form = $this->createFormBuilder('form', $entity)
    // ...
    ->getForm();
于 2013-03-09T11:24:47.053 回答
0


像这样:- 用户名:类型:字符串长度:255 固定:假可为空:假

于 2013-04-12T06:31:50.473 回答