2015-09-15 14 views
6

DB birden satırlar:laravel 5 ekim makinası bunun böyle birden çok satır eklemek mümkün olup olmadığını merak (veya böyle bir şey) oldu

<?php 

use Illuminate\Database\Seeder; 

class SettingTableSeeder extends Seeder 
{ 
    /** 
    * Run the database seeds. 
    * 
    * @return void 
    */ 
    public function run() 
    { 
     DB::table('settings')->insert(
      [ 
       'key' => 'username', 
       'value' => 'testusername' 
      ], 
      [ 
       'key' => 'password', 
       'value' => 'plain' 
      ] 
     ); 
    } 
} 

Ben sütunları ile benim veritabanında bir masa düzenlerini var & değeri.

Yukarıdaki kodla ilgili sorun, yalnızca ilkini eklemesidir ....

cevap

30

gibi tasarruf toplu için anlamlı gelen insert yöntemini kullanabilirsiniz, bu yüzden şu şekilde görünecektir: sarma dizisi

DB::table('settings')->insert([ 
    [ 
     'key' => 'username', 
     'value' => 'testusername' 
    ], 
    [ 
     'key' => 'password', 
     'value' => 'plain' 
    ] 
]); 

Bildirimi .

Şimdi ne yapıyorsunuz, insert() yöntemine iki ayrı dizi gönderiyor. Aslında (dizi (insert `yolluyoruz olarak

+0

Bunu denedim ancak "Sütun bulunamadı:" Alan listesinde "1054 Bilinmeyen sütun" 0 "almayı denedim – Samay

1

Eğer başka bir dizide senin dizilerinin sarılması gerekir

Settings::insert([[ 
      'key' => 'username', 
      'value' => 'testusername' 
     ], 
     [ 
      'key' => 'password', 
      'value' => 'plain' 
     ]]); 
+0

içine istediğiniz kadar DB :: tablo kodu repeate ...), dizi (...)) '. Insert bir dizi diziden bekler. –

+0

teşekkürler @ ChrisMagnussen.is şimdi tamam mı? –

+0

Evet, bu yapılmalı! –

0

Sadece, bu başarısız olur run yönteminin !:

DB::table('settings')->insert(
      [ 
       'key' => 'username', 
       'value' => 'testusername1' 
      ] 
     ); 

DB::table('settings')->insert(
      [ 
       'key' => 'username', 
       'value' => 'testusername2' 
      ] 
     ); 

DB::table('settings')->insert(
      [ 
       'key' => 'username', 
       'value' => 'testusername3' 
      ] 
     );