Php 我有一个奇怪的错误,在控制器与Symfony4

Php 我有一个奇怪的错误,在控制器与Symfony4,php,symfony,controller,symfony4,Php,Symfony,Controller,Symfony4,这是我的控制器 $entretien = new Entretien(); $form3 = $this->createForm(EntretienType::class, $entretien); // entretien type has a attribute debutRdv $form3->add('duree', TimeType::class, [ 'placeholder' => [ 'hour'

这是我的控制器

    $entretien = new Entretien();
    $form3 = $this->createForm(EntretienType::class, $entretien); // entretien type has a attribute debutRdv
    $form3->add('duree', TimeType::class, [
        'placeholder' => [
            'hour' => 'Heure', 'minute' => 'Minute', 'second' => 'Seconde',
        ],
        'with_seconds' => true,
        "mapped" => false,
    ]);

$form3->handleRequest($request);

    if($form3->isSubmitted())
                {
                    $debutRdv= $entretien->getDebutRdv(); // getdata from form

                    $duree =$form3->get("duree")->getData();

                    $duree = $duree->format('\P\TH\Hi\Ms\S');
/*------------Here the probleme--------*/
                        $finRdv = $debutRdv->add(new \DateInterval($duree));
/*-------------------------------------*/
...
问题是当我写$debutRdv->add。。。属性$debutRdv更改为$finRdv,就像我做的$debutRdv=$finRdv

比如说 $debutRdv:2019-03-25 16:30:00 $duree:0:30:00

当我写这个的时候

$finRdv = $debutRdv->add(new \DateInterval($duree));
$duree和$debutRdv更改为2019-03-25 17:00:00 但我只想要2019-03-25 17:00:00美元

我想解决这个问题是因为
$entertien->getDebutRdv也会更改为2019-03-25 17:00:00,就像我所做的那样$entertien->setDebutRdv$duree

这是\DateTime实例的默认行为:add方法更改从中调用它的对象。如果不想更改$debutRdv,可以将其克隆到$finRdv并应用添加:


谢谢你,$finRdv=clone$debutRdv$finRdv=$finRdv->addnew\DateInterval$duree;
$finRdv = clone $debutRdv;
// see, here's no `=` as `add()` will directly change `$finRdv`
$finRdv->add(new \DateInterval($duree));