2012-08-15 59 views
-1

在創建視圖時,我上線得到一個undefined index error: Account$senderName['Account']['company_name']但是在調試變量當陣列打印出CakePHP的未定義指數

array(
    (int) 0 => array(
     'Account' => array(
      'id' => '0', 
      'street' => 'SYSTEM', 
      'city' => 'SYSTEM', 
      'postcode' => '0', 
      'state' => 'SYS', 
      'country' => 'SYS', 
      'active' => true, 
      'company_name' => 'SYSTEM', 
      'abn' => '0' 
     ), 
     'Template' => array(), 
     'User' => array(), 
     'Invoice' => array() 
    ), 

這裏是代碼爲我的觀點

<?php foreach($invoice as $invoices):?> 
       <?php foreach($senderName as $senderName):?> 
       <?php foreach($receiverName as $receiverName):?> 
        <tr> 
       <tr> 
         <td align='center'><?php echo $senderName['Account']['company_name']; ?></td> 
         <td align='center'><?php echo $receiverName['Account']['company_name']; ?></td> 
         <td align='center'><?php echo $this->Form->Html->link($invoices['Invoice']['id'], 
            array('controller' => 'Invoices','action'=>'viewinvoice',$invoices['Invoice']['id'])); ?></td> 
        </tr> 
       <?php endforeach; ?> 
       <?php endforeach; ?> 
       <?php endforeach; ?> 

並在這裏是我的相關功能

 $accounts2=$this->User->find('list', array(
     'fields'=>array('account_id'), 
     'conditions' => array(
     'id' => $this->Auth->user('id')))); 


     $invoices=$this->Invoice->find('all', array(
     'conditions' => array(
     'Invoice.receiver_id' => $accounts2))); 

     $sender=$this->Invoice->Find('list', array('fields'=>('sender_id'))); 
     $receiver=$this->Invoice->Find('list', array('fields'=>('receiver_id'))); 

     $senderName=$this->Account->Find('all', array(
     'conditions' => array(
     'id'=>array_values($sender)))); 

     $receiverName=$this->Account->find('all', array(
     'conditions' => array(
     'id'=>array_values($receiver)))); 
debug($senderName); 

     $this->set('senderName', $senderName); 
     $this->set('accounts2', $accounts2); 
     $this->set('receiverName', $receiverName); 
     $this->set('sender',$sender); 
     $this->set('receiver',$receiver); 
     $this->set('invoice', $invoices); 

} 

回答

1

我想你應該檢查你的代碼鑑於:

<?php foreach($senderName as $senderName):?> 
<?php foreach($receiverName as $receiverName):?> 

中的foreach陣列運算和值變量應該是不同的,但你已經使用相同的變量名,請使用此不同的名稱。

3

你是電腦是裏GHT。 :)

$senderName['Account']['company_name'] 

不存在。

$senderName['0']['Account']['company_name'] 

確實。

數據以這種格式顯示,因爲它們可能是多個帳戶喜歡的senderName。

編輯:

你可以給你的模型的關係嗎?