如何使用getLastInsertId保存在cakephp中的多个表中

时间:2012-07-19 10:33:25

标签: cakephp-1.3

有两个表格内容和内容预览。我想在一个动作中添加两个表中的数据。更多内容表的last_insert_id将保存到contentpreviews表中。怎么办呢?

$this->data['Content']['user_id']     = $uid;
$this->data['Content']['content_category_id'] = $catname;
$this->data['Content']['title']         = $contname;
$this->data['Content']['description']           = $contdesc;
$this->Content->create();                             
$this->Content->save($this->data['Content']);
/*****************CONTENT SAVE END*****************/

if(!empty($arxml[$arrFirstNode]['Webpreview'])){
$webPreViewItem = count(array_values($arxml[$arrFirstNode ['Webpreview']));                       
$webPrevfileName  = array_values($arxml[$arrFirstNode]['Webpreview']);

for($wpi=0; $wpi<$webPreViewItem; $wpi++){
   $this->data['contentpreviews']['content_id']   = $this->Content->getLastInsertId();
   $this->data['contentpreviews']['name']     = $webPrevfileName[$wpi];
   $this->data['contentpreviews']['is_wap']      = 1;
//$this->Contentpreview->create();            
     

// $这 - &GT; Contentpreview-&GT;白水($这 - &GT;数据[&#39; Contentpreview&#39;]);       }    现在怎样才能将数据保存到内容和内容预览表中?

1 个答案:

答案 0 :(得分:0)

CakePHP允许您一次保存多个模型关联。 This link会帮助你。

首先,您必须创建一个关联的数组,就像参考链接中给出的一样。然后,您必须使用以下代码将数据保存到contents和contentprviews表中。

$this->Content->saveAssociated($this->requst->$data, array('deep' => true));

您还可以使用saveAll()方法在单次查询中将数据保存到多个相关表中。