我有这个:
<?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>
此代码正常。 但是我想要显示&#34; Complejo&#34;和&#34; Complejo&#34;的ID是&#34; Cancha&#34;的外键。 所以...我想要导航两次..这样的事情:
<?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>
但是没有用。我怎么能导航两次? &#34; Turno&#34;之间的联系和&#34; Cancha&#34;好的,&#34; Cancha&#34;之间的联系和&#34; Complejo&#34;没关系。
谢谢!
修改 表之间的关系是:
在ComplejosTable中:
$this->hasMany('Canchas', [
'foreignKey' => 'complejoFK'
]);
在CanchasTable中:
$this->belongsTo('Complejos', [
'foreignKey' => 'complejoFK',
'joinType' => 'INNER'
]);
$this->hasMany('Turnos', [
'foreignKey' => 'canchaFK'
]);
在TurnosTable中:
$this->belongsTo('Canchas', [
'foreignKey' => 'canchaFK',
'joinType' => 'INNER'
]);
答案 0 :(得分:1)
您必须将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
]) : '' ?>