2011-05-02 2 views
0

내 응용 프로그램에있는 페이지에 필수 텍스트가 표시되지 않아 Apache 오류 로그를 확인했는데 다음과 같은 알림/오류가 발견되었습니다.PHP Undefined Index Notice/Error

PHP Notice: Undefined index: PetManager_Model_Groomprocedures display.phtml on line 34 

그것은 내가 쿼리에서 결과를 표시하기 위해 노력하고있어 및 내 결과 배열에서이 항목을 얻을 수없는 것 때문이다. 상황은 서비스 테이블과 관련된 예약 테이블을 쿼리하는 것입니다 (이러한 요소는 잘 표시됩니다) 서비스 테이블은 차례로 프로 시저 테이블과 관련됩니다 (이것은 표시되지 않는 요소입니다).

내 검색어 또는 내 디스플레이 코드가 어디로 잘못 될지 누군가가 알 수 있으며 어떻게 작동시킬 수 있습니까?

쿼리 코드 내 디스플레이 작업에서

 if ($input->isValid()) { 
     $q = Doctrine_Query::create() 
      ->from('PetManager_Model_Kennelbooking k') 
      ->leftJoin('k.PetManager_Model_Kennelservices s') 
      ->leftJoin('s.PetManager_Model_Groomprocedures g') 
      ->leftJoin('k.PetManager_Model_Clients c') 
      ->leftJoin('k.PetManager_Model_Kennels l') 
      ->where('k.kennelbookingID = ?', $input->id); 
      if('k.groomingIncluded'==1) 
      {$q->addWhere('s.groomingGiven=g.groomProceduresID'); 
      } 

    $result = $q->fetchArray(); 
    if (count($result) == 1) { 
    $this -> view -> booking = $result[0]; 

내 PHTML 파일 미리

<td class="key">Grooming Procedure </td> 
</tr> 
<tr> 
<?php if($this->booking['PetManager_Model_Kennelservices']['groomingGiven']==NULL) 
    echo '<td>'.'There is no grooming procedure associated for this booking'.'</td>'; 
    else echo '<td>'.$this->escape($this->booking['PetManager_Model_Groomprocedures']['groomprocedure']).'</td>'; 
    ;?> 
</tr> 

많은 감사,

그레이엄

답변

1

에서 디스플레이 코드 당신이 볼 수 있듯이 색인 PetManager_Model_Groomprocedures은에 정의되지 않았습니다.-variable.

사용 가능한 키를 보려면 컨트롤러에서 다음을 수행하여 디버그 출력을 얻으십시오.

echo '<pre>';print_r($result[0]);echo '</pre>';exit; 

이 배열에서 사용할 수있는 키를 확인할 수 있습니다. 난 당신이 원하는 행을 명시 적으로 선택하지 않은 것 같아요. 이 방법으로 쿼리를 수정하고 원하는 행을 선택하게됩니다.

+0

답장을 보내 주셔서 감사합니다. 내 BB가 너무 늦어서 연락을받지 못해 죄송합니다. display.phtml 코드를 다른 것으로 변경하여 정렬했습니다. ''$ this-> escape ($ this-> booking [ 'PetManager_Model_Kennelservices'] [ 'PetManager_Model_Groomprocedures'] [ 'groomprocedure']) '; – Graham