2012-02-28 3 views
0

Могу ли я установить идентификатор записи модели для другого значения поля? (Без update это)установить значение идентификатора для другого поля

В другой способ, смешайте этот код на одну или две строки:

$this->Model->create($data); 
$this->Model->save(); 

$this->Model->create($data); // create again 
$this->Model->set('link', $this->Model->id); // get record id 
$this->Model->save(); // update 

Спасибо.

+2

Я думаю, что вы будете нуждаться, чтобы уточнить ваш вопрос. – Dave

+0

Извините, кода недостаточно. Что ты хочешь? В два раза $ this-> модель? – craphunter

+0

@Dave: возможно, когда мы вставляем данные в таблицу, у нас есть 'id', я хочу установить этот' id' для другого значения столбца, например (запись): 'id' = 10,' title' = 'Post', 'text' = 'HelloWorld', 'link' = 10 – mrdaliri

ответ

0

Да, но вам нужно сделать правильные обращения к соответствующим методам модели. Вам также необходимо убедиться, что вы правильно храните информацию в массиве, который вы передаете, чтобы сохранить. Итак, скажем, вы добавляете запись в таблицу places. Допустим, ваша схема выглядит следующим образом:

CREATE TABLE 'places' (
`id` CHAR(36) NOT NULL, 
`reference_id` CHAR(36) NULL, 
`name` VARCHAR(50) NOT NULL, 
PRIMARY KEY (`id`) 
); 

Тогда у вас есть следующее:

$data['Place']['name'] = 'New York'; 

// create the first record to get the PK ID that will 
// be used in the reference_id of the next record 

$this->Place->create(); 
$this->Place->save($data); 

// set the reference ID to the ID of the previously saved record 
$data['Place']['reference_id'] = $this->Place->id; 

// create the next record recording the previous ID as 
// the reference_id 
$this->Place->create(); 
$this->Place->save($data); 
+0

yes, но вторая' save' означает 'update' запись. не так ли? – mrdaliri

+0

Нет по двум причинам. 1- вы не передаете 'id', который является первичным ключом для предыдущей записи (это означает, что нет $ data ['Place'] ['id']', поэтому он не знает, что обновлять. 2- ' $ this-> Place-> create(); 'указывает, что вы создаете новую запись. Если одно из них было неверным, оно обновлялось. Но поскольку они оба верны, это сохранит новую запись. –

Смежные вопросы