#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, а затем соответствующей настройкой ваших установщиков оттуда.