开始使用CakePHP并喜欢它。但是我陷入了这种状态,我不知道解决这个问题的方法。
基本上,我有两个模型,离港和港口。表格如下所示:
出发
端口
现在我要列出所有离开,port_from和port_to包含来自端口的ID。 我不想只显示端口ID,而是想显示端口名称,但我不知道如何做到这一点?
在我的Departures控制器中使用两组$ this->设置,我可以显示Ports表中的值。 我一直在寻找解决方案,但我不认为belongsTo或hasMany是什么方式去这里?
感谢您的帮助。
答案 0 :(得分:0)
您可以在Departure
模型中设置两个belongsTo关联。
$belongsTo = array(
'PortForm' => array(
'className' => 'Port',
'foreignKey' => 'port_from'
),
'PortTo' => array(
'className' => 'Port',
'foreignKey' => 'port_to'
),
);
现在,当您在结果数组中的Departure
模型上执行find()时,对于每个Departure
记录,您将拥有相应的PortFrom
和PortTo
条记录。< / p>
答案 1 :(得分:0)
您必须在模型中设置关系:
class Departure extends AppModel {
public $belongsTo = array(
'From' => array(
'className' => 'Port',
'foreignKey' => 'port_from'
),
'To' => array(
'className' => 'Port',
'foreignKey' => 'port_to'
)
) ;
} ;
然后您只需使用find
或read
即可离开(在您的控制器中):
$this->set('departure', $this->Departure->read(null, $id)) ;
在视图中,您可以使用以下方式访问端口名称:
$departure['From']['name'] ;
$departure['To']['name'] ;
您可以使用以下方式访问正常的Departure
信息:
$departure['Departure']['time_arrival'] ;