cakePHP и более одного типа отношений между одинаковыми таблицами - PullRequest
0 голосов
/ 06 ноября 2011

У меня есть две таблицы - users и stores.
есть третья таблица - stores_users, которая должна управлять отношениями (HABTM).

Однако в магазине есть user_idстолбец в нем, который ссылается на владельца магазина, человека, который создал запись магазина (ownTo).
Этот пользователь может предоставлять права управления другим пользователям.

Должен ли я ожидать проблем из-за этогоотношения?

1 Ответ

1 голос
/ 06 ноября 2011

Это не должно быть проблемой.Вы можете назначить псевдонимы своим ассоциациям, например:

class Store extends AppModel {

    public $belongsTo = array(
        'Creator' => array(
            'className' => 'User',
            'foreignKey' => 'user_id',
        ),
    );

    public $hasAndBelongsToMany = array(
        'Manager' => array(
            'className' => 'User',
            'joinTable' => 'stores_users',
            'foreignKey' => 'store_id',
            'associationForeignKey' => 'user_id',
         ),
    );

}

Теперь find операции над Store будут возвращать данные типа

array(
    [Store] => array(...)
    [Creator] => array(...)
    [Manager] => array(
        0 => array(...)
        1 => array(...)
    )
)    
...