Имеет много сквозных отношений и форму множественного выбора - PullRequest
3 голосов
/ 10 марта 2012

Я использую CakePHP 2.0.2 и у меня следующие отношения

    Category hasMany CategoryWork
    Work hasMany CategoryWork
    CategoryWork belongs to Category,Work

Классический hasMany через отношения на документацию торта.

У меня есть рабочая форма добавления / редактирования с полем выбора, позволяющим пользователю выбирать несколько категорий. У меня проблема в том, что когда пользователь редактирует существующую работу, связанные категории не выбираются заранее.

У меня есть следующий код для заполнения поля выбора, который на самом деле работает:

$categoryWorks = $this->CategoryWork->Category->listCategories();
$this->set(compact('categoryWorks'));

Тогда мое поле ввода выглядит так:

<?= $this->Form->input('CategoryWork', array('multiple' => true, 'label' => 'Categories')); ?>

Это заполнит поле выбора, но не будет предварительно выбирать его с категориями, связанными с Работой.

Итак, я могу это исправить. Я просто предоставляю выбранную опцию для входного вызова, и я получаю свои предварительно выбранные категории. Но я ожидал, что CakePHP будет более волшебным для меня:)

Моя теория заключается в том, что торт просматривает идентификатор строк CategoryWork, возвращенных из рабочего запроса, и он не совпадает с идентификаторами категорий, указанных в раскрывающемся списке. Нужно посмотреть на category_id.

Мысли об этом? Я чувствую, что я почти на месте, я просто что-то упускаю, чтобы помочь торту сделать свое дело.

Заранее спасибо!

1 Ответ

0 голосов
/ 10 марта 2012

Проверяли ли вы отношения hasAndBelongsToMany?

В основном это работает так: Category hasAndBelongsToMany Работа с использованием CategoryWork

...