2015-09-13 74 views
2

想知道是否可以在Laravel遷移文件中運行foreach循環。是否有可能在laravel 5中創建動態遷移

例如:

public function up() 
{ 

    Schema::create('tests', function (Blueprint $table) { 


     $testarray = [ 
      'string' => 'name', 
      'string' => 'lastname', 
      'string' => 'random', 
     ]; 


     $table->increments('id'); 

     foreach ($testarray as $type => $column) 
     { 
      $table->$type($column); 
     } 

     $table->rememberToken(); 
     $table->timestamps(); 
    }); 
} 

不幸的是,上述的將遷移;但是,只有數組中的最後一項纔會被創建。

我試過這幾種不同的方法無濟於事。

但是......考慮到,至少有一些數據能夠通過並且遷移實際運行,應該有一種方法來實現這一目標。

我覺得好像我一定錯過了一些明顯的東西來得到這個工作。

回答

3

在你的榜樣,因爲你分配給「串」指數相同的元素很多次只有最後一個項目將被創建

嘗試是這樣的,也許:

$testarray = [ 
    ['string', 'name'], 
    ['string', 'lastname'], 
    ['string', 'random'] 
]; 

$table->increments('id'); 

foreach ($testarray as $column) 
{ 
    $table->{$column[0]}($column[1]); 
} 

希望它能幫助!

+1

是的,多維方法在早上打了我3點。謝謝您的幫助。這種方法按預期工作 – kash101