CakePHP два внешних ключа в одной таблице - PullRequest
4 голосов
/ 10 марта 2011

У меня есть веб-сайт турнира с CakePHP, где мне нужно управлять условием, как показано ниже:

Между двумя участниками будет соревнование, где мне нужно будет управлять делением матча и расписанием матчей, издесь Конкурент и Оппонент будут одинаковыми с внешним ключом таблицы конкурента, это означает, что один и тот же пользователь будет противостоять друг другу, чем в этом случае, как я могу сохранить два одинаковых поля (Competitor_id) в таблице расписания матчей, и администратор также можетуправлять заказами конкурента, если какой-либо участник недоступен и т. д.

1 Ответ

6 голосов
/ 10 марта 2011

Ваш вопрос немного сбивает с толку в конце, вы пытаетесь просто создать 2 отношения из запланированного события и пользователей (событие с конкурентом и противником)?Если это так, это может быть достигнуто путем расширения ваших отношений в модели расписания с внешними ключами.

Вместо сказать:

var $hasMany = array('Competitor');

Вы можете развернуть и установить внешний ключ и имя таблицы:

var $hasMany = array(
 'Competitor' => array(
        'className' => 'Competitor',
        'foreignKey' => 'competitor_id'
    ),
 'Opponent' => array(
        'className' => 'Competitor',
        'foreignKey' => 'opponent_id'
    )
);

Это установит 2 отношения к одной и той же модели, и вы можете сохранить их отдельно. Дальнейшее чтение.

...