在Index.php中,从我对Turno的看法来看,我有:
<?php foreach ($turnos as $turno): ?>
<tr>
<td><?= $turno->has('cancha') ? $this->Html->link($turno->cancha->idCancha, ['controller' => 'Canchas', 'action' => 'view', $turno->cancha->idCancha]) : '' ?></td>
</tr>
这个代码工作正常。但是我想显示“Complejo”的id,“Complejo”是“Cancha”的外键。所以。。。我想导航两次。。像这样的:
<?php foreach ($turnos as $turno): ?>
<tr>
<td><?= $turno->has('cancha')->('complejo') ? $this->Html->link($turno->cancha->complejo->idComplejo, ['controller' => 'Canchas', 'action' => 'view', $turno->cancha->->complejo->idComplejo]) : '' ?></td>
</tr>
但不起作用。我怎么能导航两次?“Turno”和“Cancha”之间的连接正常,“Cancha”和“Complejo”之间的连接正常。
谢谢!
编辑
表之间的关系是:
完整的:
$this->hasMany('Canchas', [
'foreignKey' => 'complejoFK'
]);
在CanchasTable中:
$this->belongsTo('Complejos', [
'foreignKey' => 'complejoFK',
'joinType' => 'INNER'
]);
$this->hasMany('Turnos', [
'foreignKey' => 'canchaFK'
]);
可转数:
$this->belongsTo('Canchas', [
'foreignKey' => 'canchaFK',
'joinType' => 'INNER'
]);
最佳答案
必须将Complejos
添加到包含的表中
'contain' => ['Canchas', 'Canchas.Complejos', 'Usuarios']
所以你可以
<?= $turno->has('cancha') && $turno->cancha->has('complejo') ?
$this->Html->link($turno->cancha->complejo->nombre, [
'controller' => 'Complejos',
'action' => 'view',
$turno->cancha->complejo->id_complejo
]) : '' ?>
关于php - 通过cakephp中的外键显示数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38004991/