Вставка данных с помощью ManyToMany в symfony 4

#symfony4

#symfony4

Вопрос:

У меня есть связь ManyToMany между двумя объектами Project и User, я создаю проект с помощью метода PostACtion (), и он работает, но в ассоциативной таблице «project_user» нет вставки, моя проблема на уровне methodPOST при создании проекта необходимо получить два идентификатора (idпроект и идентификатор пользователя), чтобы я мог вставить в ассоциативную таблицу, это мое решение Я не знаю, верна ли моя идея или нет

projectController

  /**
 * Create a new project.
 *
 * @param Request $request
 * @param Validator $validator
 * @return ApiCreatedResponse
 *
 * @SWGParameter(name="project", in="body", @Model(type=ProjectType::class))
 * @SWGResponse(response=201, description="Project Created", @Model(type=Project::class))
 *
 * @RestPost("projects")
 */



public function postAction(Request $request, Validator $validator)
{
    $data = $request->request->all();

    /** @var Project $project */
    $project = $validator->validateForm(ProjectType::class, $data)->getData();


    $this->projectManager->saveProject($project);



    return new ApiCreatedResponse(['project' => $project]);

}
 

projectphp

  private $creator;

public function __construct()
{
    $this->creator = new ArrayCollection();
}
 public function getCreator(): Collection
{
    return $this->creator;
} ....
 

userphp

  private $projects;

public function __construct()
{
    parent::__construct();
    $this->projects = new ArrayCollection();
}
 

ProjectType

    /**
 * {@inheritdoc}
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('url', TextType::class)
        ->add('title')
        ->add('type', TextType::class)
        ->add('urlSsh');
      //  ->add('creator', CollectionType::class);

}
 

Комментарии:

1. Вам нужно показать больше ваших классов сущностей (Project и User), в частности, ваши определения projects параметров users и и функций установки для каждого. Я подозреваю, что ваша проблема связана с правильным назначением сторон владения и обратной стороны ваших отношений ManyToMany, а затем соответствующей настройкой ваших установщиков оттуда.