Symfony 3: DateTime / date_time: - PullRequest
       1

Symfony 3: DateTime / date_time:

0 голосов
/ 05 сентября 2018

Я открываю для себя Symfony. Я хотел бы вставить в свою базу данных дату, выбранную пользователем в поле DateType, представленное в форме. Это моя сущность 'Suivi' с полем даты:

class Suivi {

/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var projet
 *
 * @ORM\ManyToOne(targetEntity="CDR\ProjetBundle\Entity\Projet", cascade={"persist"})
 */
private $projet;

/**
 * @var date
 *@ORM\Column(name="date", type="date")
 */
private $date;

Вот моя форма:

public function buildForm(FormBuilderInterface $builder, array $options) {
    $builder
            ->add('Date', DateType::class)
            ->add('Moyen', ChoiceType::class, array('choices'  => array(
    'Téléphone' => "Téléphone",
    'Email' => "Email",
)))
            ->add('Contenu', TextareaType::class)              
            ->add('Enregistrer', SubmitType::class)
    ;
}

И это действие в файле контроллера:

public function ajouterSuiviAction(Request $request, $id) {
    $suivi = new Suivi();
    $em = $this->getDoctrine()->getManager();
    $projet = $em->getRepository("CDRProjetBundle:Projet")->find($id);
    $form = $this->get('form.factory')->create(SuiviType::class, $suivi);
    if ($request->isMethod('POST') && $form->handleRequest($request)->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $em->persist($suivi);
        $em->flush();

        return $this->redirectToRoute('cdr_projet_suivi');
    }

    return $this->render('CDRProjetBundle:Projet:ajoutsuivi.html.twig', array(
                'projet' => $projet,
                'form' => $form->createView(),
    ));
}

Когда я отправляю свою форму, у меня появляется следующая ошибка: Error

У кого-нибудь есть идея?

1 Ответ

0 голосов
/ 06 сентября 2018

Спасибо за вашу помощь. Моя функция setDate была сгенерирована так:

/**
 * Set date
 *
 * @param \date_time $date
 *
 * @return Suivi
 */
public function setDate(\date_time $date)
{
    $this->date = $date;

    return $this;
}

Так лучше:

/**
 * Set date
 *
 * @param \DateTime $date
 *
 * @return Suivi
 */
public function setDate(\DateTime $date)
{
    $this->date = $date;

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