2013-12-12 27 views
5

Ben laravel içinde ilgili nesnelerle nesneleri toplu kaydetme ihtiyacım olan bir duruma geldim 4. Esasen yaptığım her nesnenin olduğu nesnelerin toplu olarak yerleştirilmesidir. çok etiket var (çoktan çoğa ilişkisi).Toplu Bağlama Nesneleri Laravel-4 ile İlişkilendirin

[...] 

$batchData = array(); 
$rowCount = 0; 
foreach ($dataArray as $key => $row) { 

     [...] 

     // parsing row from CSV 
     $obj = array(); 
     foreach ($row as $attribute => $value) { 
      $obj['template_id'] = $templateId; 
      $obj['batch_id'] = $batchId; 
      $obj['user_id']  = $confideUserId; 
      $obj['created_at'] = new \DateTime; 
      $obj['updated_at'] = new \DateTime; 
      // Attach Tags if any exist 
      if ($attribute === 'tags') { 
       if (!is_null($value) || !is_empty($value)) { 
        $tags = explode(":", $value); 
        // TODO: Get tag ID for each tag and add to $obj['tags'] array 
       } 
      }    
     } 

     // add object to array 
     $batchData[$rowCount] = $obj; 
     ++$rowCount; 

     if ($rowCount == \Config::get('app.maxCSV')) { 
      try { 
       // TODO: Batch Insert With Related tags?? 
       $obj_model_name::insert($batchData); 
      } catch (Exception $e) { 
       return false; 
      } 
      $rowCount = 0; 
      $batchData = array(); 

     } 
    } 

    [...] 

Her biri-birer ilişkilerinde ile nesne, ancak sorun biz CSV aracılığıyla bu nesneleri eklemek toplu olarak olmasıdır eklemek olabilir: Burada

YAPILACAK açıklamaları fark, bazı örnek kod yüzlerce yüz binlerce nesne arasında bir yerimiz olabilir.

Herhangi bir tavsiyesi olan var mı?

Bilginize kullanılan veritabanı MSSQL 2012.

Şerefe, ayrıca bu inceledikten sonra

cevap

1

, ben benim mantığı faktörlü yeniden iyi olacağını sonucuna vardı. Artık her nesneyi etiketlere o nesneye atamadan önce ayrı ayrı kaydediyorum ve tüm nesneler için tekrar ediyorum.

Bu, birçok nesne olduğunda verimli olmayabilir, ancak şu an için bu öngörülebilir bir sorun değildir.