CakePHP没有设置$ this-> Model-> id变量

时间:2010-07-16 23:13:51

标签: php cakephp variable-assignment

我目前正在尝试使用以下方式访问刚刚插入的数据:

if($this->User->save($this->data))
{
    $user_id = $this->User->id;    #119
    ...

但我收到错误:

Notice (8): Undefined index:  id [APP/controllers/users_controller.php, line 119]
Code | Context
if($this->User->save($this->data))
{
    $user_id = $this->data['User']['id'];

我不明白为什么保存成功,但是id没有设置?

编辑:
所以问题是因为我使用数据库关系迫使我的读取从多个表返回数据,它最终从多个表返回数据,所以我真正需要做的是:

$user = $this->User->read();
$id = $user['User']['id'];

而不是:

$user = $this->User->read();
$id = $user['id'];

2 个答案:

答案 0 :(得分:2)

要获取此模型插入的最后一条记录的ID,您应该使用

$this->User->getLastInsertID();

通常$this->User->id用于使某些操作知道它应该处理哪个记录,你不能用它来从数据库中检索数据。

答案 1 :(得分:0)

是的,保存数据时$model->data['Model']['id']未更新。只有$model->id。这就是它的全部内容。