-1

ビューを作成するとき、私はundefined index error: Account オンラインで取得して$senderName['Account']['company_name']いますが、変数をデバッグすると、配列が出力されます

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);

}
4

2 に答える 2

3

あなたのコンピュータは正しいです。:)

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

存在しません。

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

します。

データは、senderName に好まれる複数のアカウントである可能性があるため、この形式で提供されます。

編集:

あなたのモデルでも関係を教えていただけますか?

于 2012-08-15T10:29:38.820 に答える
1

ビューでコードを確認する必要があると思います:

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

foreach の array_expression と value 変数は異なる必要がありますが、同じ変数名を使用しています。これには別の名前を使用してください。

于 2012-08-15T16:39:02.207 に答える