Symfony 3: DateTime / date_time:

Я открываю для себя 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(),
    ));
}

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

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

Не могли бы вы также предоставить нам объявление функции setDate в классе Suivi?

iiirxs 06.09.2018 00:08

Можете ли вы сказать мне пространство имен класса DateType? Есть множественная реализация класса DateType!

Navid 06.09.2018 07:50

Похоже, проблема с подсказкой типа в подписи вашего установщика даты

Dimitris 06.09.2018 08:42

Это сгенерированная функция setDate: общедоступная функция setDate (\ date_time $ date) {$ this-> date = $ date; вернуть $ this; }

rpentene 06.09.2018 17:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
97
1

Ответы 1

Спасибо за вашу помощь. Моя функция 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;
}

Другие вопросы по теме