Cakephp 如何多次使用一张桌子?

Cakephp 如何多次使用一张桌子?,cakephp,Cakephp,我有一张名为“航班”的表格,其中我设置了出发和到达机场。机场是另一个表,我只想使用航班表中的机场id。我该怎么做?通常我只能使用一个id(机场id)我该如何使用第二个id?类似机场2号的东西 我的飞行模型如下所示: class Flight extends AppModel{ public $hasOne = "Airport"; } 还是应该使用联接手动执行此操作?您可以使用两个字段: arrival_airport_id departure_airport_id 在你的模型中

我有一张名为“航班”的表格,其中我设置了出发和到达机场。机场是另一个表,我只想使用航班表中的机场id。我该怎么做?通常我只能使用一个id(机场id)我该如何使用第二个id?类似机场2号的东西

我的飞行模型如下所示:

class Flight extends AppModel{
    public $hasOne = "Airport";
}

还是应该使用联接手动执行此操作?

您可以使用两个字段:

arrival_airport_id

departure_airport_id
在你的模型中

public $belongsTo = array(
    "DepartureAirport" => array(
        'className' => 'Airport',
        'foreignKey' => 'departure_airport_id'
    ),
    "ArrivalAirport" => array(
         'className' => 'Airport',
         'foreignKey' => 'arrival_airport_id'
    )
)
PS:我认为正确的关系是belongsTo,而不是HasOne,因为一个机场可以与多个航班相关

谢谢:)是的,你是对的,应该是$belongsTo。我刚开始吃蛋糕,有些东西有点让人困惑。