2012-08-15 163 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。

编辑:

你可以给你的模型的关系吗?