2014-11-29 4 views
0

У Hallo у меня проблемы с моим приложением FullCalendar в Symfony2.FullCalendar Маршрутизация с Symfony

Я не уверен, но я думаю об ошибке в моем маршруте.

Это мой код в FullCalendar.

$.ajax({ 
       url: '{{ path('pspiess_letsplay_booking_add') }}', 
       data: {"title": title, "start": start, "end": end}, 
         type: 'post', 
         success: function(result) { 
          alert('OK'); 
         }, 
         error: function(jqXHR, exception) { 
          if (jqXHR.status === 0) { 
           alert('Not connect.\n Verify Network.'); 
          } else if (jqXHR.status == 404) { 
           alert('Requested page not found. [404]'); 
          } else if (jqXHR.status == 500) { 
           alert('Internal Server Error [500].'); 
          } else if (exception === 'parsererror') { 
           alert('Requested JSON parse failed.'); 
          } else if (exception === 'timeout') { 
           alert('Time out error.'); 
          } else if (exception === 'abort') { 
           alert('Ajax request aborted.'); 
          } else { 
           alert('Uncaught Error.\n' + jqXHR.responseText); 
          } 
         } 
       }) 

Это мой маршрут

pspiess_letsplay_booking_add: 
    pattern: /admin/booking/add 
    defaults: { _controller: pspiessLetsplayBundle:Booking:add } 

Это мой контроллер

/** 
* Lists all Booking entities for Calendar. 
* 
* @Route("/", name="booking_add") 
* @Method("GET") 
* @Template() 
*/ 
public function addReservation() { 
    $em = $this->getDoctrine()->getManager(); 
    $serializer = SerializerBuilder::create()->build(); 
    $qb = $em->createQueryBuilder(); 
    $qb->select('b') 
      ->from('pspiessLetsplayBundle:Booking', 'b'); 

    $query = $qb->getQuery(); 
    $jsonContent = $query->getResult(); 

    $rows = array(); 
    foreach ($jsonContent as $obj) { 
     $rows[] = array(
      'title' => "test", 
      'start' => $obj->getStart()->format('Y-m-d H:i:s'), 
      'end' => $obj->getEnd()->format('Y-m-d H:i:s'), 
      'className' => 'label-success', 
     ); 
    } 

    $jsonContent = $serializer->serialize($rows, 'json'); 

    return array(
     'entities' => $jsonContent, 
    ); 
} 

Есть некоторые учебники, как использовать FullCalendar с Symfony2? Я искал всю сеть, но я ничего не нашел ...

+1

Я успешно реализован FullCalendar с Symfony2. Из того, что я вижу прямо сейчас, самая большая ошибка заключается в том, что ваш метод 'controller' не заканчивается' Action', поэтому его следует называть 'addReservation'. Во-вторых, вы не показали нам метод pspiessLetsplayBundle: Booking: add'. Кроме того, я 'json_decode' и снова' json_encode' сериализованные объекты, чтобы удалить все атрибуты Entity. Попробуйте эти несколько вещей, и мы увидим, где мы с вашей проблемой. –

+0

Спасибо за ваши отзывы, я попробую вас предложить. У вас есть какой-нибудь код? Im действительно застрял в этом momemt? – psiess

ответ

0

В моем коде есть некоторые проблемы. Вот образец, он отлично работает для меня.

Мой контроллер действия

public function addReservationAction() { 
     $em = $this->getDoctrine()->getManager(); 
     //fetch the POST Data 
     $request = $this->get('request'); 
     $data = $request->request->all(); 

     //save the Reservation 
     $booking = new Booking(); 

     $booking->setTitle($data["title"]); 
     $booking->setStart(new \DateTime($data["start"])); 
     $booking->setEnd(new \DateTime($data["end"])); 

     $em->persist($booking); 
     $em->flush(); 

     //return response 
     $serializedEntity = $this->container->get('serializer')->serialize($booking, 'json'); 
     $response = new Response($serializedEntity); 
     $response->headers->set('Content-Type', 'application/json'); 
     return $response; 
} 

Мой маршрут

код
pspiess_letsplay_booking_add: 
pattern: /admin/booking/add 
defaults: { _controller: pspiessLetsplayBundle:Booking:addReservation } 

My Script

 $.ajax({ 
      url: '{{ path('pspiess_letsplay_booking_add') }}', 
      data: {"title": title, "start": start, "end": end}, 
      type: 'post', 
      success: function(result) { 
       $('#calendar1').fullCalendar('renderEvent', { 
        title: title, 
        start: start, 
        end: end, 
       }, true); 
       $(".title").val(""); // clear title field 
      }, 
      error: function(jqXHR, exception) { 
      }, 
     }) 
Смежные вопросы