2014-11-29 2 views
0

Hallo Symfony2의 FullCalendar 앱에 문제가 있습니다.FullCalendar Routing with 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, 
    ); 
} 

일부 자습서 어떻게 Symfony2와 FullCalendar가 사용할 수 있나요입니까? 나는 전체 웹을 검색했지만 아무 것도 발견하지 못했습니다 ...

+1

. 지금 보았던 것에서 가장 큰 오류는'controller' 메소드가'Action'으로 끝나지 않아서'addReservation'으로 명명되어야한다는 것입니다. 둘째,'pspiessLetsplayBundle : Booking : add' 메소드를 보여주지 않았습니다. 또한,'json_decode' 및 다시'json_encode' 직렬화 된 객체를 사용하여 모든 Entity 특성을 제거합니다. 이 몇 가지를 시도해 보면 문제가있는 부분을 알 수 있습니다. –

+0

의견을 보내 주셔서 감사합니다. 나는 당신에게 제안을 시도 할 것입니다. 몇 가지 간단한 코드가 있습니까? 이 엄마 한테 정말 붙어 있니? – 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 } 

내 스크립트 코드 I 성공적으로 Symfony2와 FullCalendar을 구현했습니다

 $.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) { 
      }, 
     })