将symfony从2.3问题升级到2.7问题,其形式为不检索实体

我正在检索旧应用程序的代码,这些代码几年来都没有更新。我们的系统管理员已将代码放入php7服务器中(以前在php5上正常工作)。该代码效果很好。我想进行一些更新,而我所做的第一个更新是将symfony从2.3升级到2.7。*。当然,现在出现了问题。我有一个正确呈现的表单(所有字段都可以,即使数据库中的也可以)。这是我的builer:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('object','text',array(
            "required"=>false,
            "attr"=>array(
                "placeholder"=>"Object"
                )
            ))
        ->add('date','date',array(
            'widget'=>'single_text',
            ))
        ->add('contact', 'entity', array(
            'label'=>'Contact',
            'class'=>'MyApp\AppliBundle\Entity\Contact',
            'choice_translation_domain' => true,
            'placeholder'=>'initials',
            'choice_label' => 'initials',
            'multiple'=>true
            ))
        ->add('text','redactor',array(
            "required"=>false,
            "redactor"=>"default"
            ))
    ;
}

这是我的控制器:

public function editMeetingAction($id,Request $request)
{
    $em = $this->getDoctrine()->getManager();
    $meeting = $em->getRepository('MyAPPAppliBundle:Meeting')- 
      >findOneById($id);
    $form   = $this->createForm(new MeetingType, $meeting);
    $form->handleRequest($request);
    if ($form->isValid()) {
        $em->persist($meeting);
        $em->flush();
        $this->get('session')->getFlashBag()->add('success', 'Meeting 
    edited successfully');
        return $this->redirect($this- 
   >generateUrl('myapp_appli_manage_editmeeting', array("id" => $id)));
    }
    return array(
        "form" => $form->createView(),
        "id" => $id,
    );
}

现在,当我尝试保存表单时,出现以下错误:

[语法错误]行0,列-1:错误:预期文字,字符串末尾。

[1/2] QueryException:从MyApp \ AppliBundle \ Entity \ Contact中选择SELECT e

该应用似乎无法检索在表单中选择的联系人。我不知道这里有什么问题,因为它在以前的版本中可以正常工作。我遵循了该网站中的步骤来帮助我进行迁移,并已经修改了表单中的某些字段(占位符,choices_as_values等)https://gist.github.com/mickaelandrieu/5211d0047e7a6fbff925

如果您能帮助我,将不胜感激。

[EDIT1]:在我将symfony从2.3更新到2.7之前,该表单正常工作

[EDIT2]:实体联系人:

<?php

namespace MyApp\AppliBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\EntityRepository;

/**
 * Contact
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="MyApp\AppliBundle\Entity\ContactRepository")
 */
class Contact
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="Name", type="string", length=255)
     */
    private $name;

    /**
     * @var string
     *
     * @ORM\Column(name="Email", type="string", length=255)
     */
    private $email;

    /**
     * @var string
     *
     * @ORM\Column(name="Initials", type="string", length=255)
     */
    private $initials;

    /**
     * @var integer
     *
     * @ORM\Column(name="id_binome", type="integer")
     */
    private $id_binome;

    /**
     * @var string
     *
     * @ORM\Column(name="JobTitles", type="string", length=255)
     */
    private $jobtitle;

    /**
     * Tostring method
     *
     */
    public function __toString()
    {
        return $this->name;
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set name
     *
     * @param string $name
     * @return Contact
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

    /**
     * Get name
     *
     * @return string 
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Set email
     *
     * @param string $email
     * @return Contact
     */
    public function setEmail($email)
    {
        $this->email = $email;

        return $this;
    }

    /**
     * Get email
     *
     * @return string 
     */
    public function getEmail()
    {
        return $this->email;
    }

    /**
     * Set initials
     *
     * @param string $initials
     * @return Contact
     */
    public function setInitials($initials)
    {
        $this->initials = $initials;

        return $this;
    }

    /**
     * Get initials
     *
     * @return string 
     */
    public function getInitials()
    {
        return $this->initials;
    }

    /**
     * Get id_binome
     *
     * @return integer
     */
    public function getIdBinome()
    {
        return $this->id_binome;
    }

    /**
     * Set id_binome
     *
     * @param integer $id
     * @return Contact
     */
    public function setIdBinome($id)
    {
        $this->id_binome = $id;

        return $this;
    }

    /**
     * Get jobtitle
     *
     * @return string
     */
    public function getjobtitle()
    {
        return $this->jobtitle;
    }

    /**
     * Set jobtitle
     *
     * @param string $jobtitle
     * @return Contact
     */
    public function setjobtitle($jobtitle)
    {
        $this->jobtitle = $jobtitle;

        return $this;
    }

}


class ContactRepository extends EntityRepository
{
    public function findEmailBinome($id_binome)
    {
        $querybuilder = $this->createQueryBuilder("Contact")
            ->select("Contact.email")
            ->where("Contact.id = :idbinome")
            ->setParameter('idbinome',$id_binome)
            ;

        return $querybuilder
            ->getQuery()
            ->getSingleResult()
            ;
    }
}

[编辑getter设置器]

/**
 * Add contacts
 *
 * @param \MyApp\AppliBundle\Entity\Contact $contacts
 * @return Meeting
 */
public function addContact(\MyApp\AppliBundle\Entity\Contact $contacts)
{
    $this->contacts[] = $contacts;

    return $this;
}

/**
 * Remove contacts
 *
 * @param \MyApp\AppliBundle\Entity\Contact $contacts
 */
public function removeContact(\MyApp\AppliBundle\Entity\Contact $contacts)
{
    $this->contacts->removeElement($contacts);
}

/**
 * Get contacts
 *
 * @return \Doctrine\Common\Collections\Collection 
 */
public function getContacts()
{
    return $this->contacts;
}

我想我找到了解决方案。由于这是与数据库连接有关的问题,我怀疑dotrine / orm有罪!我通过更改来更新composer.json:

"doctrine/orm": "=2.2.*"

"doctrine/orm": ">=2.2.3"

当我尝试作曲家更新教义/规范时,它没有解决问题。但是,当我只是尝试更新作曲家时,我的应用程序又可以正常工作了。非常感谢你的帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将eXist-db版本2升级到4.5的索引中的问题

由于存在依赖性问题,无法将esxi升级到6.5u2

将应用程序升级到CodeIgniter 3后出现问题

升级到Springboot 2后解析bootstrap.properties中的占位符的问题

从角度2升级到角度4.4时出现角度路由器问题

从12.04升级到14.04后libxml2的问题原因

从192升级到200时h2数据库的升级问题:比例不得大于精度

将angular从4升级到6时使用angular2-jwt和AuthHttp的问题

将项目升级到Visual Studio 2019的问题

将项目升级到Android Studio 1.0(Gradle问题)

将 Django 从 1.8 升级到 1.9 的问题

将Laravel 5.4升级到5.6的问题

将应用程序升级到Rails 4问题

将 Ubuntu 升级到 20.04 后 Vim 的问题

将 php 从 5.6 升级到 7.4 后,项目 symfony 2.8 中 AppKernel.php 的问题

从 smarty 2 升级到 3 意外的“|”

使用ASPX / ASCX将MVC3升级到MVC5:继承问题

将Active Reports从版本3升级到版本10时需要注意的问题和事情

问题将 okd 集群从 3.6 升级到 3.7(试图将其完全升级到最新版本)

问题将 21.04 升级到 22.04(仅显示 21.10 升级选项)

由于Dropbox升级问题,我无法将ubuntu 12.04升级到14.04

将Windows 7升级到Windows 8.1,可能出问题了吗?

将CentOS 6升级到7后的网络接口问题

将 Compose 的导航库升级到 Alpha 7 后出现的问题

将SmartGWT LGPL从5个问题升级到6个问题

Symfony2-升级到3.0

Bootstrap 3 升级到 Bootstrap 5 导航栏问题

pip升级到pip3的问题

PHP从5.6.30升级到7.0.20后,Symfony 2.8上复杂表格的SQL问题