Флажки обновления Zend Framework в базе данных - PullRequest
2 голосов
/ 18 июля 2011

Я только начал работать с Zend Framework, так что может возникнуть немного глупый вопрос.

У меня есть форма с 5 флажками. Пользователь может установить столько флажков, сколько необходимо. Это вводится в базу данных. (1: N)

Это все отлично работает. Но теперь я дошел до той части, где пользователь может редактировать сообщение. Флажок отображается так же, как и когда один из них активен. Но как мне обновить это сейчас?

Обновление «Оставшаяся часть сообщения» работает нормально, собирает данные и отправляет обновление:

    $this->getDbTable()->update($data, array('post_id = ?' => $id));

Теперь я хочу обновить флажки, отношение 1: n. Но как мне это сделать, если у меня, например, было 4 активных флажка, но после обновления я хочу только 3 активных? Должен ли я сначала удалить все записи, а затем выполнить обычную вставку или есть способ сделать это?

Надеюсь, кто-нибудь может помочь. Спасибо!

1 Ответ

0 голосов
/ 19 июля 2011

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

Если удаление / повторная вставка будет слишком дорогостоящей операцией, возможно, сохраните отмеченные значения в сеансе и выполните array_diff($previous_selected, $currently_selected), чтобы получить список элементов для удаления.

Следует отметить, что помощник вида formCheckbox по умолчанию создает скрытый ввод с тем же именем, что и флажок со значением 0.

...