CakePHP -> HABTM -> контроллер-просмотр выбрать несколько значений и сохранить в правильном порядке в базе данных - PullRequest
0 голосов
/ 11 февраля 2012

Я использую CakePHP 2.0, и у меня есть две модели: user и course.Они связаны с HABTM, так что это отношение многих ко многим.

Я могу создавать, читать, обновлять и удалять курсы, и все в порядке.Но теперь пользователь может принимать участие в некоторых курсах.

В представлении «Добавить пользователя» я могу выбрать много курсов с этими строками кода, потому что это создает поле множественного выбора.

$this->set('courses', $this->User->Course->find('list'));
echo $this->Form->input('Course');

Так что я могу выбрать несколько значений, но проблема в порядке!Мне нужен порядок в моих курсах, которым должен управлять пользователь приложения (дата начала / окончания курса не имеет значения).

Пример: у меня есть пользователь с id = 10Должно быть возможно выбрать ни один курс или 1 или много с правильным порядком.У меня ок.200 курсов с идентификаторами 1-200. Это должно быть возможно:

* UserId 10 -> no course
* UserId 10 -> CourseId 23
* UserId 10 -> CourseId 23, CourseId 11, CourseId 45, CourseId 10, CourseId 199 (the order is important)

Как я могу сделать это в моем представлении добавления / редактирования и в моем контроллере, чтобы справиться с этим?

С уважением.

1 Ответ

2 голосов
/ 11 февраля 2012

В вашей таблице курсов вам нужно будет добавить еще один столбец, скажем, связанные курсы.

Вы должны использовать этот столбец в качестве ограничения.Вы можете хранить данные в формате JSON или сериализовать и т. Д. Вы можете использовать данные в столбце для сортировки ваших курсов в запросе поиска.

Затем в представлении необходимо использовать JavaScript, чтобы ограничить выборо неправильном курсе и уведомить пользователя о заказе.

Это просто идея, но я надеюсь, что это поможет!

...