cakephp getLastInsertId无法正常工作

gywdnpxw  于 2022-11-12  发布在  PHP
关注(0)|答案(3)|浏览(131)

这里我已经使用cakephp js helper发送数据,插入一个数据后,我需要这个最后的id为进一步的工作。这里我已经尝试在Addcontroller中的below代码

if ($this->Patient->save($this->request->data)) {
                $lastid=$this->Patient->getLastInsertId();
                $patient=$this->Patient->find('all',array(
               'conditions'=>array('Patient.id'=>$lastid ),
               'recursive' => -1
 ));  
 $this->set('patient', $patient);

}

在add.ctp中,我已经尝试了下面的代码,但我还没有得到最后的id在这里。

<?php foreach ($patient as $patient): ?>
    <?php echo h($patient['Patient']['id']); ?>
<?php endforeach; ?>
fkvaft9z

fkvaft9z1#

方法getLastInsertId()返回刚刚保存的记录的id。
如果在保存后视图中需要该id,则必须首先在控制器中设置该变量(如$this->set(compact('lastid','patient');),然后在视图中使用<?php echo $lastid; ?>

xu3bshqb

xu3bshqb2#

使用了

if ($this->Patient->save($this->request->data)) {
    $id = $this->Patient->id;
    $patient=$this->Patient->find('all',array('conditions'=>array('Patient.id'=>$id),'recursive' => -1));

$this->set->('patient', $patient);
//If you are saving the record with ajax which it looks like you 
//might be from your question you will need the following instead
//of $this->set->('patient', $patient); try:

return json_encode($patient);

然后,您还需要更新js AJAX 调用,您将有一个json数组需要解码,因此使用jquery解析它并将其追加回视图中。
Cake总是会给予你刚刚保存的记录的id,只需添加$id = $this-〉MyModel-〉id;您可以使用id来查询记录。

rxztt3cl

rxztt3cl3#

请尝试以下代码:
1.在控制器中:

$lastid=$this->Patient->getLastInsertId();

 $this->set(compact('lastid','patient');

然后在视图文件中使用$lastid
1.在控制器中:

$lastid=$this->Patient->getLastInsertId();
 $patient['Patient']['last_id'] = $lastid;

然后在视图文件中使用$patient['Patient']['last_id']

相关问题