在我看来,我想要一个像这样的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'和'town'相关联:
country hasmany town and town belongsto country
不幸的是,错误:
注意(8):未定义索引:名称[APP \ View \ index \ index.ctp,第10行]
为什么?
答案 0 :(得分: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'
)
)
);