PHP未定义索引通知/错误

时间:2011-05-02 11:04:52

标签: zend-framework doctrine

我的应用程序中的页面不会显示所需的文本,所以我检查了我的Apache错误日志,发现以下通知/错误。

 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 个答案:

答案 0 :(得分:1)

正如您所见,PetManager_Model_Groomprocedures - 变量中未定义索引booking

要查看哪些键可用,请在控制器中执行以下操作以获得调试输出。

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

您将看到此阵列中有哪些键可用。我猜你没有明确选择想要的行。您将以这种方式修改查询,您也可以选择想要的行。