Codeigniter Datamapper сохранить как новый идентификатор - PullRequest
1 голос
/ 02 ноября 2011

Я новичок в datamapper.У меня есть проблема при попытке дублировать результат в новый идентификатор.

Это упрощенная таблица для моей базы данных:

Таблица заданий

| id | property_id | name | type |
| 1  | 1           | abc  | i    |
| 2  | 2           | def  | ii   |

Таблица свойств

| id | job_id | size |
| 1  | 1      | 90   |
| 2  | 2      | 40   |

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

Таблица заданий

| id | property_id | name | type |
| 1  | 1           | abc  | i    |
| 2  | 2           | def  | ii   |
| 3  | 3           | abc  | i    |

Таблица свойств

| id | job_id | size |
| 1  | 1      | 90   |
| 2  | 2      | 40   |
| 3  | 3      | 90   |

Спасибо запомогая!:)

Ответы [ 2 ]

3 голосов
/ 02 ноября 2011

В документации для DataMapper Overzealous Edition: http://datamapper.wanwizard.eu/pages/clonecopy.html Там есть clone и copy, copy очистит идентификатор. Вот их пример, просто пропустите часть внесения изменений:

// Let's save a new hosting plan
$p = new Plan();

$p->name = 'The 100GB Plan';
$p->storage = 1000;
$p->bandwidth = 2000;
$p->databases = 5;
$p->domains = 5;
$p->emails = 50;

$p->save();

// Now, lets make a copy of that saved plan and base a new one off of it
$p = $p->get_copy();

// Change only what we need to
$p->name = 'The Big 150GB Plan';
$p->storage = 1500;
$p->bandwidth = 2500;

// And now save a new record
$p->save();
1 голос
/ 02 ноября 2011

Вы также можете просто изменить полученный объект, а затем использовать save_as_new (), чтобы сохранить его как новую запись.

...