Php CodeIgniter&;Datamapper-同一字段的两个外键

Php CodeIgniter&;Datamapper-同一字段的两个外键,php,codeigniter,foreign-keys,datamapper,Php,Codeigniter,Foreign Keys,Datamapper,我有一个数据库,表如下: CREATE TABLE `flight_booking` ( `id` int(11) NOT NULL AUTO_INCREMENT, `flight_id` int(11) NOT NULL, `departure_airport_id` int(3) NOT NULL, `arrival_airport_id` int(3) NOT NULL, PRIMARY KEY (`id`), KEY `fk_flight_booking/depa

我有一个数据库,表如下:

CREATE TABLE `flight_booking` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `flight_id` int(11) NOT NULL,
  `departure_airport_id` int(3) NOT NULL,
  `arrival_airport_id` int(3) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_flight_booking/departure_airport` (`departure_airport_id`),
  KEY `fk_flight_booking/arrival_airport` (`arrival_airport_id`),
  CONSTRAINT `fk_flight_booking/arrival_airport` FOREIGN KEY (`arrival_airport_id`) REFERENCES `airport` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `fk_flight_booking/departure_airport` FOREIGN KEY (`departure_airport_id`) REFERENCES `airport` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
所以,预订有两个机场,一个是到达机场,一个是离开机场 问题是,我不知道如何在我的模型中声明关系。 我尝试过不同的事情,这就是我现在所拥有的:

    class flight_booking extends DataMapper {
        var $table = 'flight_booking';
        var $has_one = array (
                'flight',
                'departure_airport' => array (
                        'class' => 'airport'
                        ),
                'arrival_airport' => array (
                        'class' => 'airport',
                ) 
        );
var $validation = array (
            'id' => array (
                    'label' => 'ID',
                    'rules' => array () 
            ),

            'flight_id' => array (
                    'label' => 'Flight ID',
                    'rules' => array (
                            'required' 
                    ) 
            ),

'departure_airport_id' => array (
                    'label' => 'Departure airport id',
                    'rules' => array (
                            'required'
                    ) 
            ),
   'arrival_airport_id' => array (
                        'label' => 'Arrival aiport ID',
                        'rules' => array (
                                'required'
                        ) 
                )
    )
这使我在尝试保存时出现“无法访问与规则名称对应的错误消息:必需”。错误 有什么想法吗?

实际上,“无法访问与您的规则名称对应的错误消息:必选。”与此无关。我修复了一些错误声明,现在我收到一个错误,告诉我的关系设计不正确