CakePHP: как получить недавно созданное автоинкрементное поле - PullRequest
0 голосов
/ 29 апреля 2010

У меня есть пользователь, отправляющий поле в базу данных, он проверяет и делает запись. Первичный ключ этой новой строки автоматически увеличивается.

Затем пользователь попадает в другую форму, где требуется это вновь созданное поле.

Может кто-нибудь пролить свет на эту проблему?

Заранее спасибо!

Ответы [ 4 ]

2 голосов
/ 04 декабря 2010
2 голосов
/ 30 апреля 2010

Проверить модель :: getInsertID ();

1 голос
/ 04 июня 2010
// Save the first form    
$this->Ingredient->save($newData);
// Get the id of the record just saved
$newIngredientId = $this->Ingredient->id;
// Redirect to a new form
$this->redirect(array(
  'controller' => 'dish',
  'action' => 'add',
  '?' => array('lastId' => $newIngredientId)
));

http://book.cakephp.org/view/1031/Saving-Your-Data, http://book.cakephp.org/view/1442/link

0 голосов
/ 29 апреля 2010

Если он находится в базе данных, когда вы перейдете к следующей форме, просто прочитайте ее снова в контроллере и установите для нее переменную представления.

$this->set('lastid', $this->Model->read(null,$id));

Или, если вам нужно найти в базе данных поле, используйте find

$this->set('lastid', $this->Model->find('first', array('conditions'=>array('username'=>'MyUserName')) , array('id')));

Вы можете обойти это, используя mysql_insert_id()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...