CakePHP在一个index.ctp中显示两个表的数据

时间:2014-05-09 06:21:11

标签: cakephp

我的公司/ index.ctp中有以下代码:

<div class="companies index">
    <h2><?php echo __('Company Details'); ?></h2>
    <table cellpadding="0" cellspacing="0">
    <tr>
            <th><?php echo $this->Paginator->sort('Id'); ?></th>
            <th><?php echo $this->Paginator->sort('Company Name'); ?></th>
            <th><?php echo $this->Paginator->sort('ABN'); ?></th>
            <th><?php echo "Billing Address"; ?>
            <?php echo $this->Paginator->sort(''); ?>
            <?php echo $this->Paginator->sort(''); ?>
            <?php echo $this->Paginator->sort(''); ?>
            <?php echo $this->Paginator->sort(''); ?></th>
            <th><?php echo "Shipping Address"; ?>
            <?php echo $this->Paginator->sort(''); ?>
            <?php echo $this->Paginator->sort(''); ?>
            <?php echo $this->Paginator->sort(''); ?>
            <?php echo $this->Paginator->sort(''); ?></th>
            <th><?php echo $this->Paginator->sort('Phone'); ?></th>
            <th><?php echo $this->Paginator->sort('Email'); ?></th>
            <th><?php echo $this->Paginator->sort('Fax'); ?></th>
            <th><?php echo $this->Paginator->sort('Website'); ?></th>
            <th><?php echo $this->Paginator->sort('Description'); ?></th>
            <th><?php echo $this->Paginator->sort('License Number'); ?></th>
            <th class="actions"><?php echo __(''); ?></th>
    </tr>
    <?php foreach ($companies as $company): ?>

    <tr>
        <td><?php echo h($company['Company']['id']); ?>&nbsp;</td>
        <td><?php echo h($company['Company']['company_name']); ?>&nbsp;</td>
        <td><?php echo h($company['Company']['ABN']); ?>&nbsp;</td>
        <td><?php echo h($company['CompaniesBillingAddress']['company_street_address']); ?>&nbsp;
        <?php echo h($company['CompaniesBillingAddress']['company_suburb']); ?>&nbsp;
      <?php echo h($company['CompaniesBillingAddress']['company_state']); ?>&nbsp;
        <?php echo h($company['CompaniesBillingAddress']['company_postcode']); ?>&nbsp;</td>
        <td><?php echo h($company['Company']['company_street_address']); ?>&nbsp;
        <?php echo h($company['Company']['company_suburb']); ?>&nbsp;
        <?php echo h($company['Company']['company_state']); ?>&nbsp;
        <?php echo h($company['Company']['company_postcode']); ?>&nbsp;</td>
        <td><?php echo h($company['Company']['company_phone']); ?>&nbsp;</td>
        <td><?php echo h($company['Company']['company_email']); ?>&nbsp;</td>
        <td><?php echo h($company['Company']['company_fax']); ?>&nbsp;</td>
        <td><?php echo h($company['Company']['company_website']); ?>&nbsp;</td>
        <td><?php echo h($company['Company']['company_description']); ?>&nbsp;</td>
        <td><?php echo h($company['Company']['license_number']); ?>&nbsp;</td>
        <td class="actions">

            <?php echo $this->Html->link(__('View'), array('action' => 'view', $company['Company']['id'])); ?>
            </td>
    </tr>
<?php endforeach; ?>
    </table>

companiesController:

public $ components = array(&#39; Paginator&#39;);

public function index() {
    $this->Company->recursive = 0;
    $this->set('companies', $this->Paginator->paginate());
}

//一些代码 }

companiesBillingAddressController

public $components = array('Paginator');

    public function index() {
        $this->CompaniesBillingAddress->recursive = 0;
        $this->set('companiesBillingAddresses', $this->Paginator->paginate());
    }}

CompaniesBillingAddress表属于Companies表。我希望companiesBillingAddress表中的数据显示在companies / index.ctp中。 我一直收到错误说&#34;未定义的索引:CompaniesBillingAddress [APP \ View \ Companies \ index.ctp,第36行&#34;。有人能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

$this->Company->recursive = 1;
在你的公司控制器应该做的工作。在诸如&#34; Undefined index&#34;是在视图中调试您的数组。如果您找不到所需的数据,请查看您的控制器。在这种情况下,错误是您的禁用递归。

此外,我不建议使用递归而是containable behaviour。 因此,将递归设置为0实际上是一种好方法。