У меня есть форма в Symfony, которую необходимо отправить через вызов ajax. Я worte код, но он не сохраняет данные в db, но также не дает/не показывает никаких ошибок.Symfony2 Сохранение данных формы через Ajax
send_dict = {
type: 'POST',
url: $(this).attr('action'),
processData: true,
data: $('#Form').serialize(),
beforeSend: function(request) {alert('before send');},
success: function (data) {alert("success")},
error: function(xhr, textStatus, thrownError) {
alert('Some Thing Went Wrong, Please Refresh and Try Again...');
}
}
$.ajax(send_dict);
public function createAction(Request $request)
{
$user = $this->getUser();
$address = new Addresses();
if($request->isXmlHttpRequest()) {
// Do something...
if ($request->isMethod('POST')) {
$request = $this->get('request');
$permanent_is_present = $request->get('permanent_is_present');
$present_address = $request->get('present_address');
$present_address_country = $request->get('present_address_country');
// Persisting Objects to the Database
if($permanent_is_present==true){
$address->isIsPresent(true);
$address->isIsPermanent(true);
}else{
$address->isIsPresent(true);
}
$address->setUser($user);
$address->setStreet1($present_address);
$address->setCountry($present_address_country);
$address->setState($present_address_state);
$address->setCity($present_address_city);
//exit(\Doctrine\Common\Util\Debug::dump($address));
// Entity Manager To Get Connected with Doctrine
$em = $this->getDoctrine()->getManager();
// Persists the entire objects....
$em->persist($address);
// Flush queries into database
$em->flush();
$output = array();
$response = new Response();
$output[] = array('success' => true);
$response->headers->set('Content-Type', 'application/json');
$response->setContent(json_encode($output));
return $response;
}else{
return $this->render('AddressBundle:Addresses:new.html.twig');
}
} else {
return $this->redirect($this->generateUrl('address_new'));
}
}
показаны как предупреждающие сообщения перед отправкой, так и успех на функции ajax. но данные не сохраняются в базе данных? Новое в symfony, также не знаете, как отслеживать/отлаживать это?
UPDATE: Еще одна вещь, я заметил, что нет Логин пользователя в системе, и эм пытается сделанных звонков AJAX. и он отправляет контроллеру и потому, что идентификатор пользователя не найден, поэтому он не сохраняется в базе данных.
Возможно, проблема с оценкой с '$ (this) .attr ('action')' - что вы ожидаете от этого? – Steve
создайте сторону контроллера объекта формы, затем привяжите запрос. Затем вы можете проверить правильность. [heres] (http://codemonkeys.be/2013/01/ajaxify-your-symfony2-forms-with-jquery/) разумный ресурс, который поможет вам. – DevDonkey
@Steve 'action =" {{path ('address_create')}} "' –