Обновление базы данных CAKEPHP и добавление новых записей - PullRequest
2 голосов
/ 27 июля 2011

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

Теперь Как я могу обновить эти отредактированные записи promocode, а также добавить новые promocode записи в таблицу для конкретного userid.

пожалуйста, помогите.

спасибо.

Ответы [ 3 ]

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

Не уверен, но надеюсь, что это помогло

здесь ваше текущее поле и несколько динамических полей

для сохранения данных используйте A-> saveAll ($ this-> data)

поле с идентификатором будет отредактировано но поле без идентификатора будет создано

<!-- current value-->
<input type="" name="data[A][edited_id][id]" value="edited_id"/>
<input type="" name="data[A][edited_id][promocode]" value="edited value"/>
<input type="" name="data[A][edited_id][user_id]" value="here user id"/>

<!-- new values-->
<input type="" name="data[A][1][promocode]" value="new value 1"/>
<input type="" name="data[A][1][user_id]" value="here user id"/>

<input type="" name="data[A][2][promocode]" value="new value 2"/>
<input type="" name="data[A][2][user_id]" value="here user id"/>

<input type="" name="data[A][3][promocode]" value="new value 3"/>
<input type="" name="data[A][3][user_id]" value="here user id"/>
0 голосов
/ 12 октября 2012

Это правильный способ сохранить вещи в БД, вот небольшой пример

//set some data (important, don't set the 'id')
$this->data['Workout']['user_id'] = $user_id;
$this->data['Workout']['name'] = "Ab Blaster"; 

//create workout then save it
$this->Workout->create();
$this->Workout->save($this->data);
0 голосов
/ 27 июля 2011

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

Во-первых, таблица "A" - очень ужасный пример ... в конвенционных таблицах cakephp всегда следует называть множественное число.Но в любом случае в верхней части вашего контроллера у вас будет

$uses = array("A"); <-- This is you model

В вашем действии я бы сделал что-то вроде этого.

//First register the update
$this->A->id = $id //$id you will have to somehow post it with form maybe some hidden field
$this->A->set("promocode", $_POST["promocode"]);
$this->A->save();
$this->A->id = null; 

//Then register the new entries
foreach($newEntries as $newEntry) {
    $this->A->set("promocode", $newEntry["value"]);
    $this->A->set("user_id", $userid);
    $this->A->save();
    $this->A->id = null;
}
...