Не могу зарегистрировать объект в моей базе данных с формой symfony - PullRequest
0 голосов
/ 10 февраля 2019

Я новичок в симфонии и пытаюсь зарегистрировать сущность на своей базе с помощью формы.Вот форма:

<?php
namespace App\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\MoneyType;
use Symfony\Component\Form\Extension\Core\Type\TelType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;

class OfferType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('title', TextType::class, array('label' => '*Title: ' , 'attr' => array('class' => 'input2')))
        ->add('nameofgame', TextType::class, array('label' => 'Name of the Game:','attr' => array('class' => 'create button1')))
        ->add('description', TextType::class, array('label' => 'Description: ' , 'attr' => array('class' => 'input2')))
        ->add('price', MoneyType::class, array('label' => '*Price: ' , 'attr' => array('class' => 'input2')))
        ->add('numbertelephone', TelType::class, array('label' => 'Telephone Number:','attr' => array('class' => 'create button1')))
        ->add('save', SubmitType::class, array('label' => 'Post Offer','attr' => array('class' => 'create button1')))
    ;
}
}

Вот мой контроллер:

/**
 * @Route("/BoardFind/Trade/RegisterOffer", name="RegisterOffer")
 * @param Request $request
 * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
 */
public function register(Request $request)
{
    $Offer = new TradeOffer();
    $form = $this->createForm(OfferType::class, $Offer);
    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()) {
        $Offer = $form->getData();
        echo maleee;
        $entityManager = $this->getDoctrine()->getManager();

        $session = $this->get('session');
        $userId = $session->get("id");
        $user = $this->getDoctrine()
            ->getRepository(User::class)->find($userId);
        $Offer->setUser($user);
        $Offer->setTraderName($user->getName());
        $Offer->setTraderLastName($user->getLastName());
        $Offer->setUsername($user->getUsername());
        $Offer->setTraderEmail($user->getEmail());

        $entityManager->persist($Offer);
        $entityManager->flush();

        $flashbag = $this->get('session')->getFlashBag();
        $flashbag->add("SuccessfullRegister", "You successfully registered your offer!");
        return $this->redirectToRoute('Trade');
    }

    return $this->render('home/RegisterOffer.html.twig', array(
        'form' => $form->createView(),
    ));

}

Когда я пытаюсь зарегистрировать предложение, он говорит, что «Ожидаемый аргумент типа« App \ Entity \ double »"двойной" дано. "но дело в том, что я считаю, что собственность субъекта правильная.Вот свойство:

/**
 * @Assert\Type("double")
 * @Assert\NotBlank()
 */
private $price;

Если вы хотите изображение ошибки здесь это так.Так в чем же проблема?

1 Ответ

0 голосов
/ 11 февраля 2019

В PHP double - псевдоним для float.При использовании подсказок скалярного типа или возвращаемых типов этот псевдоним не поддерживается, и вместо него должен использоваться фактический тип.Это поведение сравнимо с поддерживаемым bool, но не boolean.

Другими словами, в ваших методах получения и установки вы должны ссылаться на float.

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