Symfony 4: Ошибка создания формы добавления сущности (объект не найден аннотацией @ParamConverter)

Я пытаюсь создать форму для добавления объекта в мою базу данных (проект). Точно так же реализовал и для других сущностей, все работает, а для этого (проекта) не работает ...

Экран ошибки: http://image.noelshack.com/fichiers/2019/02/1/1546884788-capture.png

ProjectController:

/**
 * @Route("/projects/add", name = "add_projects")
 */
public function addProject(Request $request)
{
    $em = $this->getDoctrine()->getManager();
    $project = new Project();

    $form = $this->createForm(AddProjectType::class, $project);
    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        $em->persist($project);
        $em->flush();
        return $this->redirectToRoute('index_projects');
    }

    return $this->render('/project/add.html.twig', [
        'form' => $form->createView(),
    ]);
}

AddProjectType:

class AddProjectType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name', TextType::class, array(
            'attr' => array(
                'placeholder' => 'Nom',
            ),
            'label' => false,
        ))
        ->add('price', IntegerType::class, array(
            'attr' => array(
                'placeholder' => 'Prix',
            ),
            'label' => false,
        ))
        ->add('type', ChoiceType::class, array(
            'choices' => array(
                'Application web' => 'Application web',
                'Site internet' => 'Site internet',
                'Application mobile' => 'Application mobile',
                'Autre' => 'Autre',
            ),
            'label' => false,
        ))
        ->add('client', EntityType::class, array(
            'class' => User::class,
            'choice_label' => function($user) {
                return $user->getUsername();
            },
            'label' => false,
        ))
        ->add('state', ChoiceType::class, array(
            'choices' => array(
                'A faire' => 'A faire',
                'En cours' => 'En cours',
                'Terminé' => 'Terminé',
            ),
            'label' => false,
        ))
        ->add('description', TextareaType::class, array(
            'attr' => array(
                'placeholder' => 'Description',
            ),
            'label' => false,
        ))
        ->add('Ajouter', SubmitType::class, [
            'attr' => [
                'class' => 'btn btn-success',
            ]
        ])
    ;
}

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults([
        'data_class' => Project::class,
    ]);
}
}

add.html.twig:

{% extends "./base.html.twig" %}

{% block title %}{{ parent() }}Ajouter un projet{% endblock %}

{% block stylesheets %}
{{ parent() }}
<style>
    form input, form select, form textarea {
        width: 100%;
        margin: .5em 0;
    }
</style>
{%  endblock %}

{% block body %}
{{ parent() }}
<h1 class = "title-page">Ajouter un projet</h1>
<div class = "container-fluid">

    {{ form_start(form) }}
    {{ form_widget(form) }}
    {{ form_end(form) }}
</div>
{% endblock %}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
399
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В БД смотрели, добавлен ли проект? В вашем контроллере я не вижу причины для ParamConverter, поэтому я предполагаю, что ошибка возникает после перенаправления на index_projects

Извините, я забыл указать: эта ошибка появляется именно тогда, когда я захожу на страницу, а не во время проверки формы

Dimitri Dumont 07.01.2019 19:58

Для этого действия контроллера я не могу объяснить, почему ParamConverter вызывается с помощью проекта. Я бы проверил в профилировщике symfony, какой контроллер / действие используется (на вкладке «Запрос / ответ»), и в классе контроллера, используется ли где-нибудь аннотация ParamConverter.

tzunghaor 07.01.2019 21:44

Мне только что удалось выяснить, почему у меня возникла эта ошибка, я опубликую здесь приветствие, чтобы оно было у других: У меня был в этом контроллере маршрут / projects / {id} (для доступа к деталям проекта), я изменил его на / projects / details / {id}

Другие вопросы по теме