Я открываю для себя 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(),
));
}
Когда я отправляю свою форму, у меня возникает следующая ошибка: Ошибка
У кого-то есть идея?
Можете ли вы сказать мне пространство имен класса DateType? Есть множественная реализация класса DateType!
Похоже, проблема с подсказкой типа в подписи вашего установщика даты
Это сгенерированная функция setDate: общедоступная функция setDate (\ date_time $ date) {$ this-> date = $ date; вернуть $ this; }






Спасибо за вашу помощь. Моя функция 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;
}
Не могли бы вы также предоставить нам объявление функции setDate в классе Suivi?