Symfony3无法创建对象

时间:2017-05-03 09:35:31

标签: php symfony doctrine-orm sonata-admin sonata

我使用的是Sonata Admin套装。我收到错误:无法创建对象:PizzaBundle \ Entity \ Promotion。我做了一个促销实体:

/**
 * @ORM\Entity
 * @ORM\Table(name="promotion")
 */
class Promotion {

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=100)
     */
    private $title;

    /**
     * @ORM\Column(type="string")
     */
    private $description;



    /**
     * @ORM\Column(type="blob")
     */
    private $image;

    /**
     * @ORM\Column(type="date")
     */
    private $dataStart;

    /**
     * @ORM\Column(type="date")
     */
    private $dataEnd;

和PromotionAdmin.php

public function configureFormFields(FormMapper $formMapper) {
        $formMapper
                ->add('title', 'text')
                ->add('description', 'text')
                ->end()
                ->with('Zdjęcie')
                    ->add('image', 'file', ['required' => false]) 
                    ->add('dataStart', 'date')
                    ->add('dataEnd', 'date')
                ->end();
    }

    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
    {
        $datagridMapper
                ->add('title')
                ->add('description')
                ->add('image')
                ->add('dataStart')
                ->add('dataEnd')
                ;
    }

    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
                ->addIdentifier('title')
                ->addIdentifier('description')
                ->addIdentifier('image')
                ->addIdentifier('dataStart')
                ->addIdentifier('dataEnd')
                ;
    }



}

我的services.yml

admin.promotion:
        class: PizzaBundle\Admin\PromotionAdmin
        arguments: [~, PizzaBundle\Entity\Promotion, ~]
        tags:
            - { name: sonata.admin, manager_type: orm, label: Promotion }

我的代码没有问题。我认为这是实体中类型变量Image的问题。如果这是类型blob中的错误,请帮助解决问题。

1 个答案:

答案 0 :(得分:2)

您正试图在"图像"中插入NULL列,似乎不可为空,这会导致MySQL错误。

/**
 * @ORM\Entity
 * @ORM\Table(name="promotion")
 */
class Promotion 
{
     /**
      * @ORM\Column(type="blob", nullable=true)
      */
     private $image;
}