0

在我看来,我想要一个类似这样的 HTML 表格:

     COUNTRY         TOWN
      france         paris

这是我的查询:

$foo=$this->country->find('all', array(
    'contain' => array(
            'Town' => array(
                'conditions' => array("Town.country_id = country.id"),
                'fields' => array('id','name')
            )
        )
    )
);

我想像这样显示到我的视图中:

 line6        <?php foreach ($diponibilite as $f): ?>
 line7  
 line8            <tr>
 line9                <td><?php echo $f['country']['name'];?></td>
 line10             <td><?php echo $f['town']['name'];?></td>
 line11         
 line12            </tr>
 line13        <?php endforeach; ?>

模型“国家”和“城镇”是相关联的:

country hasmany town and town belongsto country

不幸的是,一个错误:

注意(8):未定义索引:名称[APP\View\index\index.ctp,第10行]

为什么?

4

1 回答 1

2

问题是,由于您有Country hasmany Town关系,一个国家可能有多个城镇(作为debug( $f )节目的输出)。

要打印所有城镇,您需要另一个循环:

<?php foreach( $diponibilite as $f ): ?>
    <tr>
        <td><?php echo $f[ 'country' ][ 'name' ]; ?></td>
        <td><?php 
            foreach( $f[ 'town' ] as $town ) {
                echo $town[ 'name' ].' ';
            }
        ?></td>
    </tr>
<?php endforeach; ?>

或者,如果您只想要第一个,请使用$f[ 'town' ][ 0 ][ 'name' ].

旁注:如果您正确设置了关联,则不需要查找中的条件。你可以做

$foo = $this->country->find( 'all', array(
    'contain' => array(
            'Town.id',
            'Town.name'
        )
    )
);
于 2012-04-27T09:27:08.513 回答