2014-04-18 4 views
0

은 내가 하나의 결과를 얻기 위해 교리 쿼리를 사용하는 설정 작업을하지만, 데이터가 데이터베이스에 존재하면서 null를 돌려, 내가 하나의 결과를 얻을 어떻게 여기 내 코드입니다 :mongo odm을 사용하여 단일 결과를 얻는 방법? ?

public function settingsAction() 
    { 
      $id = (int) $this->params()->fromRoute('id', 0); 
      if (!$id) { 
       return $this->redirect()->toRoute('calendar', array(
        'action' => 'create' 
       )); 
      } 
       //echo $id; 
      //$calendar = $id;//$this->getCalendarTable()->getCalendar($id); 
      $calendar = $documentManager->getRepository('Calendar\Document\Calendar')->find($id); 
      $form = new CalendarForm(); 
      $form->bind($calendar); 
      $form->get('submit')->setAttribute('value', 'Save'); 

      $request = $this->getRequest(); 
      if ($request->isPost()) { 
       $form->setInputFilter($calendar->getInputFilter()); 
       $form->setData($request->getPost()); 

       if ($form->isValid()) { 
        //$this->getCalendarTable()->saveCalendar($form->getData()); 
        return $this->redirect()->toRoute('calendar', array('action' => 'show', 'id' => $id)); 
       } 
      } 

      return array(
       'id' => $id, 
       'form' => $form, 
      ); 
    } 

답변

0

당신은 필요가 없습니다 DocumentRepository이 이미 find($id) 메소드를 통해 제공하므로 이드로 가져 오기 쿼리를 만들 수 있습니다.

그냥 저장소

$document = $documentManager->getRepository('FooDocument')->find($id); 

또한 직접 문서 관리자에 편리한 메소드 find($documentName, $id)을 사용할 수를 가져 문서 관리자를 사용합니다.

+0

내 코드가 내 코드를 사용하지만 코드가 잘못되었으므로 오류가 있습니다.이 데이터를 양식에 바인딩 한 다음 양식을 편집하면 어떻게됩니까? –

+0

@MuhammadArif 원래 코드를 계속 변경하면 사람들이 당신을 도울 수 없게됩니다. 그럼에도 불구하고 당신은 원래 당신이 가지고 있던 선을 놓치고 있습니다; '$ documentManager = $ this-> getServiceLocator() -> get ('doctrine.documentmanager.odm_default');''$ documentManager'는 정의되지 않았기 때문에. 이 오류가 이미 즉시 분명하지 않은 경우 ZF2 기본 사항을 더 배우기 전에 학습하는 것이 좋습니다. – AlexP