CakePHP - Редактирование нескольких строк - PullRequest
1 голос
/ 14 апреля 2011

Как я могу внести изменения в таблицу в несколько строк?
Я следовал этому уроку http://matsimitsu.com/blog/2008/01/06/saveall-with-cakephp.html, но он не работает.

Вот что я делаю, но это не работает.

Спасибо
Тройник

* * 1010

Тогда, на мой взгляд, это то, что у меня есть

foreach ($this->data as $setting):
    echo $form->input('Setting.' . $setting['Setting']["id"] . '.value', array('value' => $setting['Setting']["value"]));
endforeach;

Тогда в функции добавления у меня есть

function add() {
    if (!empty($this->data)) {
        $this->Setting->create();
        if ($this->Setting->saveAll($this->data)) {
            $this->Session->setFlash(__('The Setting has been saved', true));
            $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The Setting could not be saved. Please, try again.', true));
        }
    }
}

1 Ответ

2 голосов
/ 14 апреля 2011

Вам необходимо включить поле id, чтобы данные в вашем контроллере выглядели так:

'Setting' => array(
    0 => array(
        'id' => 42,
        'value' => 'foo'
    ),
    1 => array(…)
)

Итак, по мнению, сделайте это:

foreach ($this->data as $i => $setting) {
    echo $this->Form->hidden("Setting.$i.id", array('value' => $setting['Setting']['id']));
    echo $this->Form->input("Setting.$i.value", array('value' => $setting['Setting']['value']));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...