я только что получил эту ошибку случая несоответствие между загруженными и заявленными именами классов: MyApp \ UserBundle \ Entity \ пост против MyApp \ UserBundle \ Entity \ PostSymfony 3 ошибки: несоответствие случая между загруженными и заявленными именами классов
я использую два контроллера, чтобы выполнить конкретную операцию удаления и вернуться к старой странице
здесь код
<a href="{{ path('DeleteComment',{'idc':comment.id}) }}"></a>
<a href="{{ path('DeleteComment',{'idc':comment.id}) }}"> <i
class="icon-trash"></i>Delete</a>
здесь моя кнопка является код моего Routing в:
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;
использования MyApp \ UserBundle \ Entity \ PostComment;
Вот мой Entity
namespace MyApp\UserBundle\Entity;
использовать Doctrine \ ORM \ Mapping в ОРМ; /** * @ORM \ Entity * @ORM \ Table (имя = "пост") */ класс 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;
сообщение эээ о посте против Post. Не имеет никакого отношения к вашим контроллерам. Если бы я должен был догадаться, учитывая ваше довольно образное соглашение об именах, у вас есть классный пост. Или, может быть, опечатка в вашем отношении к PostComment. И, конечно же, убедитесь, что ваш кеш очищен, если вы редактировали материал сущности. – Cerad
Я изменил имя каждого массива на «p» и все еще получаю ту же проблему, я могу показать вам другие части моего кода, если вы хотите его проверить. – petrucci
Измените код в своем вопросе, чтобы показать объект Сообщение, должно быть проблема. –