2012-07-19 2 views
1

두 개의 테이블 내용 및 내용 미리보기가 있습니다. 액션에서 두 테이블의 데이터를 모두 추가하려고합니다. 더 많은 내용 테이블의 last_insert_id는 contentpreviews 테이블에 저장됩니다. 그것을 어떻게 처리 할 수 ​​있습니까?getLastInsertId를 사용하여 cakephp의 여러 테이블에 저장하는 방법

$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();    

// $ this-> Contentpreview-> 시려면 ($ this-> 데이터 [ 'Contentpreview']); } 이제 데이터를 콘텐츠 및 콘텐츠에 저장하여 어떻게 모든 테이블을 볼 수 있습니까?

답변

0

CakePHP를 사용하면 여러 모델 연관을 한 번에 저장할 수 있습니다. This link 당신을 도울 것입니다.

먼저 참조 링크에 지정된 것과 같이 연관된 배열을 만들어야합니다. 그런 다음 내용과 contentprviews 테이블에 데이터를 저장하려면 다음 코드를 사용해야합니다.

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

saveAll() 메서드를 사용하면 단일 샷 쿼리로 여러 관련 테이블에 데이터를 저장할 수 있습니다.

관련 문제