Массив не сохраняет предыдущие элементы после обновления - PullRequest
0 голосов
/ 07 февраля 2020

Объект Job имеет свойство под названиемандидаты, которое является массивом Users, и оно не сопоставлено или связано с любым другим объектом. На данном маршруте мы выбираем специфицированный c объект Job по id. Мы обновляем наш список кандидатов назначает пользователя, которого мы получаем из текущего сеанса. Получается, что пользователь сохраняется, но при каждом вызове мы теряем тех пользователей, которые были сохранены ранее.

Почему это происходит?

/**
 * @Route("/job/apply/{id}", requirements={"id"="\d+"}, name="student_candidate", methods={"POST"})
 *
 * @param int $id
 *
 * @return JsonResponse
 */
public function apply(int $id)
{
    $job = $this->getDoctrine()->getRepository(Job::class)->find($id);
    $candidate = $this->getUser();
    $job->addCandidate($candidate);
    $this->getDoctrine()->getManager()->flush();

    return new JsonResponse([
        'status' => 'success',
        'message' => 'some_success_message'
    ]);
}
class Job
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="title", type="string", length=255)
     */
    private $title;

    /**
     * @var string
     *
     * @ORM\Column(name="content", type="text", length=65535)
     */
    private $content;

    /**
     * @var User[]|ArrayCollection
     */
    private $candidates;

    public function __construct()
    {
        $this->candidates = new ArrayCollection();
    }

    /**
     * @return User[]|ArrayCollection
     */
    public function getCandidates()
    {
        return $this->candidates;
    }

    /**
     * @param User $user
     *
     * @return Job
     */
    public function addCandidate(User $user)
    {
        $this->candidates[] = $user;

        return $this;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...