Cakephp: Как избавиться от безликого соединения? - PullRequest
1 голос
/ 18 августа 2011

enter image description here

Я хочу избавиться от массива CategoriesRecord. Я связываю модели, используя:

$this->Category->bindModel(
                array('hasAndBelongsToMany' =>
                    array(
                        'Record' =>
                        array(
                            'className' => 'Record',
                            //'joinTable' => 'categories_records',
                            'foreignKey' => 'categories_id',
                            'associationForeignKey' => 'records_id',
                            'conditions' => array('Record.active' => 1)
                        )
                    )
                )
        );

ура

Ответы [ 3 ]

1 голос
/ 18 августа 2011

попробуйте сдерживаемое поведение, чтобы избавиться от вещей, которые вам не нужны.Используйте его, когда вы используете find ();http://book.cakephp.org/view/1323/Containable

1 голос
/ 18 августа 2011

Как сказал jacktrade Способность к контейнерам - лучшее решение, если у вас много таблиц и отношений. Хотя вы можете попробовать BindModel и Unbind Model на лету.

$this->Model->unbindModel(
    array('associationType' => array('associatedModelClassName'))
);
1 голос
/ 18 августа 2011

Habtm требует промежуточную таблицу - это joinTable в закомментированных вами отношениях.По умолчанию это будет использовать экземпляр AppModel с именем CategoriesRecord, который отображается в таблицу category_records.

Вы не можете избавиться от этой промежуточной модели / таблицы, иначе habtm не будет работать(Это «таблица соединений» для отношений «многие ко многим»)

Сохранение массива в возвращаемых данных на самом деле не приносит никакого вреда - это фактически дает вам удобный способ доступа к каждому из связанныхзначения id при создании форм / ссылок действий и т. д.

...