Ошибка Symfony 3: Несоответствие регистра между загруженными и объявленными именами классов

я только что получил эту ошибку

Несоответствие регистра между загруженными и объявленными именами классов: MyApp \ UserBundle \ Entity \ post против MyApp \ UserBundle \ Entity \ Post

я использую два контроллера для выполнения определенной операции удаления и возврата на старую страницу

вот код моей кнопки

<a href="{{ path('DeleteComment',{'idc':comment.id}) }}"></a>
<a href="{{ path('DeleteComment',{'idc':comment.id}) }}"> <i
class="icon-trash"></i>Delete</a>

вот код моей маршрутизации:

get_view_post:
path:     /blog/get/one/post/{id}/
defaults: { _controller: "MyAppBlogBundle:Blog:getpost" }
DeleteComment:
path:     /blog/post/comment/delete/{idc}/
defaults: { _controller: "MyAppBlogBundle:Blog:DeleteComment" }

вот мой код контроллеров:

public function DeleteCommentAction($idc)
{

$em = $this->getDoctrine()->getManager();
$comment = $em->getRepository('MyAppUserBundle:PostComment')->find($idc);
$idPost =$comment->getIdPost();$em->remove($comment);
$em->flush();return $this->redirectToRoute("get_view_post", array('id' => $idPost));
}public function getpostAction($id)
{
$user = $this->getUser();
$idu = $user->getId();
$em = $this->getDoctrine()->getManager();
$em1 = $this->getDoctrine()->getManager();
$post = $em->getRepository('MyAppUserBundle:Post')->find($id);
$idPost=$post->getId();
$comment = $em1->getRepository('MyAppUserBundle:PostComment')->findBy(array('idPost' => $idPost));
return $this->render('MyAppBlogBundle::afficherPostAvecComment.html.twig', array('posts' => $post,'comments'=>$comment,'idu'=>$idu));

}

я объявляю свои сущности так:

use MyApp\UserBundle\Entity\Post;
use MyApp\UserBundle\Entity\PostComment;

Вот моя сущность

namespace MyApp\UserBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="post")
*/
class Post
{/**
* @var integer
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;

/**
* @var string
* @ORM\Column(name="titre", type="string", length=100, nullable=false)
*/
private $titre;
/**
* @var string
* @ORM\Column(name="contenu", type="string", length=250, nullable=false)
*/
private $contenu;

/**
* @var \DateTime
* @ORM\Column(name="dateajout", type="datetime", nullable=true)
*/
private $dateajout ;

/**
* @var integer
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(name="id_utilisateur",referencedColumnName="id")
*/
private $idUser;

/**
* @var integer
* @ORM\Column(name="nbLike", type="integer", nullable=true)
*/
private $nbLike =0;
/**
* @var integer
* @ORM\Column(name="nbDislike", type="integer", nullable=true)
*/
private $nbDislike=0;
/**
* @var integer
* @ORM\Column(name="nbSignal", type="integer", nullable=true)
*/
private $nbSignal=0;

0

Решение

я сделал некоторые изменения в своем коде, так как я вижу, что моя среда IDE не может дифференцироваться
между Post, PostComment и моим сообщением в массиве или, более того, его собственным методом восстановления «_POST».
Из вышеприведенной ошибки видно, что она основана на колебаниях между Post и post. Если вы используете последнюю версию Symfony, попробуйте отсканировать весь ваш проект и изменить имена ваших атрибутов или классов, верите или нет, но это создает трудности для IDE, когда ваш проект становится больше

и вот что сделало ошибку:

  • старый

    / **

    • @var integer
    • @ORM \ ManyToOne (targetEntity = «пост»)
    • @ORM \ JoinColumn (имя = «id_post», referencedColumnName = «идентификатор»)
      * /
      private $ idPost;
  • новый

    / **

    • @var integer
    • @ORM \ ManyToOne (targetEntity = «Сообщение»)
    • @ORM \ JoinColumn (имя = «id_post», referencedColumnName = «идентификатор»)
      * /
      private $ idPost;

я не давал утвержденного имени моей сущности, поэтому, когда я выполняю какие-либо операции на основе внешних ключей, среда IDE не может найти ни одной ссылки на эту сущность.

Если вы используете старую версию Symfony, вы должны добавить строку кода в конфигурацию какого-либо файла.
Вы можете получить лучшее объяснение здесь:

Ошибка Symfony2: Несоответствие регистра между загруженными и объявленными именами классов:

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]