$builder->add('image', new FileType(), array('label' => 'Логотип'));$builder->add('file', 'file', array('label' => false)); 
  
   
  
  Catchable Fatal Error: Argument 1 passed to Proxies\__CG__\AppBundle\Entity\File::setFile() must be an instance of Symfony\Component\HttpFoundation\File\UploadedFile, null given, called in
 
  
  но из-за того что это поле обязательное, при попытке сохранить без фотки он мне кидает исключение
/**
     * @var \AppBundle\Entity\File
     *
     * @ORM\ManyToOne(targetEntity="AppBundle\Entity\File", cascade={"persist"})
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="image", referencedColumnName="id")
     * })
     */
    private $image;@ORM\JoinColumn(name="image", referencedColumnName="id", nullable=false) 
  
  /** * @var \AppBundle\Entity\File * * @ORM\ManyToOne(targetEntity="AppBundle\Entity\File", cascade={"persist"}) * @ORM\JoinColumns({ * @ORM\JoinColumn(name="image", referencedColumnName="id") * }) */ private $image;
/**
     * @var \AppBundle\Entity\File
     *
     * @ORM\ManyToOne(targetEntity="AppBundle\Entity\File", cascade={"persist"})
     * @ORM\JoinColumn(name="image", nullable=true, options={"default" = null})
     */
    private $image;Только вот FK не дает обновить БД
php app\console doctrine:schema:update --force[Doctrine\DBAL\Exception\DriverException]
  An exception occurred while executing 'ALTER TABLE companies CHANGE image i
  mage BIGINT NOT NULL':
  SQLSTATE[HY000]: General error: 1832 Cannot change column 'image': used in
  a foreign key constraint 'FK_8244AA3AC53D045F'
  [Doctrine\DBAL\Driver\PDOException]
  SQLSTATE[HY000]: General error: 1832 Cannot change column 'image': used in
  a foreign key constraint 'FK_8244AA3AC53D045F'
  [PDOException]
  SQLSTATE[HY000]: General error: 1832 Cannot change column 'image': used in
  a foreign key constraint 'FK_8244AA3AC53D045F'
2. Не надо перзистить ту сущность, которую получили из формы. Просто получите из неё фотографию и обновите ту сущность, которую получили из БД.
 
  
   
  
  $builder->add('file', 'file', array('label' => false)); 
  
  Зачем же вы тогда делали поле nullable
нужно описать логику обновления данных сущности из формы
 
  
  для теста
как же я опишу, если ошибка возникает на этапе handleRequest?
Catchable Fatal Error: Argument 1 passed to Proxies\__CG__\AppBundle\Entity\File::setFile() must be an instance of Symfony\Component\HttpFoundation\File\UploadedFile, null given, called in 
  
  Какой смысл тестировать то, что вам не нужно?
объявите поле формы как необязательное с помощью опции required.
 
  
  https://gist.github.com/antonowano/314a2998e30183609a67
$form = $this->createForm(new AddCompanyType($em));
// ...
$builder->get('user')->addModelTransformer(new EntityToNumberTransformer($this->manager, 'AppBundle:Users'));class CompaniesCompanies называется, если он представляет одну компанию? Аналогично с Files и т.п./**
     * @ORM\Column(name="address", type="json_array", length=65535, nullable=true)
     */
    private $address;
// ...
    /**
     * @var string
     *
     * @ORM\Column(name="functions", type="json_array", length=65535, nullable=true)
     */
    private $functions;class EditCompanyType extends AddCompanyType
2. Не надо перзистить ту сущность, которую получили из формы. Просто получите из неё фотографию и обновите ту сущность, которую получили из БД.
не понял.
public function editCompanyAction($id, Request $request)
    {
        $em = $this->getDoctrine()->getManager();
        $entity = $em->getRepository('AppBundle:Companies')->find($id);null вернулся.if ($form->isSubmitted() && $form->isValid()) {
            $entity = $form->getData();file и, если таки этот файл есть - привязывать его к первой $entity. 
  
  The form's view data is expected to be an instance of class Symfony\Component\HttpFoundation\File\File, but is a(n) string. You can avoid this error by setting the "data_class" option to null or by adding a view transformer that transforms a(n) string to an instance of Symfony\Component\HttpFoundation\File\File
$builder->add('file', 'file', array(
    'label' => false,
    'data_class' => null     // <-- here
));Catchable Fatal Error: Argument 1 passed to Proxies\__CG__\AppBundle\Entity\Files::setFile() must be an instance of Symfony\Component\HttpFoundation\File\UploadedFile, null given, called in D:\xampp\htdocs\52realty.local\vendor\symfony\symfony\src\Symfony\Component\PropertyAccess\PropertyAccessor.php on line 410 and defined
 
  
   
  
   
            