Привет, я не могу найти ошибку, когда пытаюсь удалить что-то из моей базы данных.
Он говорит, что мое пространство имен неверно, но я действительно не могу найти никаких проблем.
Вот действие, которое я вызываю
/**
* @Route("/delete/{id}", name = "delete")
* @param $id
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function deleteById($id)
{
$em = $this->getDoctrine()->getManager();
$entries = $em->getRepository(Database_InteractionType::class)->find($id);
$em->remove($entries);
$em->flush();
return $this->redirectToRoute('show');
}
Вот сущность и моя форма. Я смотрю на него уже 2 часа подряд и не могу найти Iusse..
Сущность:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass = "App\Repository\Database_InteractionRepository")
*/
class Database_Interaction
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type = "integer")
*/
private $id;
/**
* @ORM\Column(type = "string", length=255)
*/
private $question;
/**
* @ORM\Column(type = "string", length=255)
*/
private $answer;
public function getId(): ?int
{
return $this->id;
}
public function getQuestion(): ?string
{
return $this->question;
}
public function setQuestion(string $question): self
{
$this->question = $question;
return $this;
}
public function getAnswer(): ?string
{
return $this->answer;
}
public function setAnswer(string $answer): self
{
$this->answer = $answer;
return $this;
}
}
Моя форма:
<?php
namespace App\Form;
use App\Entity\Database_Interaction;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class Database_InteractionType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add(
'question',
TextType::class,
[
'attr' => [
'placeholder' => 'Enter your Question',
'class' => 'form-control'
],
'required' => true
]
)
->add(
'answer',
TextType::class,
[
'required' => true,
'attr' => [
'class' => 'form-control',
'placeholder' => 'Enter your Answer',
]
]
)
->add(
'save',
SubmitType::class,
[
'attr' => [
'class' => 'btn btn-primary'
]
]
)
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Database_Interaction::class,
]);
}
}
И мой репозиторий, если это поможет..
<?php
namespace App\Repository;
use App\Entity\Database_Interaction;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Symfony\Bridge\Doctrine\RegistryInterface;
/**
* @method Database_Interaction|null find($id, $lockMode = null, $lockVersion = null)
* @method Database_Interaction|null findOneBy(array $criteria, array $orderBy = null)
* @method Database_Interaction[] findAll()
* @method Database_Interaction[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class Database_InteractionRepository extends ServiceEntityRepository
{
public function __construct(RegistryInterface $registry)
{
parent::__construct($registry, Database_Interaction::class);
}
/**
* @param string $id
* @return Database_Interaction|null
*/
public function findById(string $id)
{
return $this->findOneBy(
['id' => $id]
);
}
// /**
// * @return SubmitNew[] Returns an array of SubmitNew objects
// */
/*
public function findByExampleField($value)
{
return $this->createQueryBuilder('s')
->andWhere('s.exampleField = :val')
->setParameter('val', $value)
->orderBy('s.id', 'ASC')
->setMaxResults(10)
->getQuery()
->getResult()
;
}
*/
/*
public function findOneBySomeField($value): ?SubmitNew
{
return $this->createQueryBuilder('s')
->andWhere('s.exampleField = :val')
->setParameter('val', $value)
->getQuery()
->getOneOrNullResult()
;
}
*/
}
Если кто-то может мне помочь, я уже не знаю, где искать...
Спасибо






Посмотрите внимательно на эту строку:
$entries = $em->getRepository(Database_InteractionType::class)->find($id);
Это относится к классу типа формы (App\Form\Database_InteractionType), а не к вашему сохраненному классу сущности, который находится в пространстве имен App\Entity (пространстве имен, в котором он ищет), поэтому возникает ошибка. У форм нет репозитория, а у связанной сущности есть.
Попробуй это:
$entries = $em->getRepository(Database_Interaction::class)->find($id);
Я потратил не менее 1 часа на поиски этого .. спасибо