我目前正在与Symfony 3合作开展一个个人项目,我在AJAX Post方法中遇到了一些通过Doctrine发送数据的问题。 更具体地说,我的项目包括在Google地图上显示标记以及人们可以在其上放置标记地址的输入文本(感谢Google自动填充)。所以我想在我的数据库中存储名称的地址,纬度和经度。 我的问题出现在Controller上,它将数据发送到我的数据库。我不知道在哪里放json_encode。
任何人都可以帮助我吗?
在我看来:
$('#envoi').on('click', onSubmit);
function onSubmit(){
var data = {
"address":$("#form_address").val(),
"lat":lat,
"lng":lng,
"dateconcert": $("#form_dateconcert").val(),
"timeconcert": $("#form_timeconcert").val(),
"descconcert": $("#form_concertdescription").val()
}
$.post('{{ path('setevent') }}', data, onReturn);
}
function onReturn(serverResponse){
window.location = '{{ path('setevent') }}';
}
在我的控制器中:
use AppBundle\Entity\Event;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\TimeType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\Encoder\XmlEncoder;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
class EventCreationController extends Controller
{
/**
* @Route("/profile/setevent", name="setevent")
*/
public function new(Request $request)
{
$event = new Event();
$event->setDateconcert(new \DateTime('tomorrow'));
$form = $this->createFormBuilder($event)
->add('address', TextType::class, array('label' => "L'adresse de l'évènement : "))
->add('dateconcert', DateType::class, array('label' => "Sélectionnez la date de votre évènement : ",
'widget' => 'single_text'))
->add('timeconcert', TimeType::class, array('label' => "Sélectionnez l'heure de votre évènement : ",
'widget' => 'single_text'))
->add('concertdescription', TextType::class, array('label' => "Décrivez votre évènement"))
->add('save', SubmitType::class, array('label' => "C'est parti !",
'attr'=> array('class'=>'send')))
->getForm();
return $this->render('creationevent/creationevent.html.twig', array(
'form' => $form->createView(),
));
}
}
有了这个,我没有任何错误。到目前为止,我还不知道将Doctrine的说明和json_encode放在哪里,以便将数据发送到我的数据库。