2016-07-28 47 views
0

我試圖將新列slug添加到現有表devices併爲其分配隨機唯一值。遷移期間更新列值時的空值

以下是我的遷移腳本。

public function up() 
    { 

     Schema::table('devices', function(Blueprint $table){ 
      $table->string('slug'); 
     }); 

     $ids = DB::table('devices')->where('slug','')->pluck('id'); 

     //dd($ids); 
     foreach ($ids as $id) 
     { 
      Device::whereId($id[0])->update(array('slug' => uniqid())); 
     } 


    } 

遷移運行完美。但是在遷移之後,slug字段是空字符串。但它應該是一個獨特的字符串。

可能是什麼問題?

回答

0

我覺得跟環路的問題,試試這個:

foreach ($ids as $id) 
{ 
    Device::whereId($id)->update(array('slug' => uniqid())); 
} 

另外,還可以使簡單

public function up() 
{ 
    Schema::table('devices', function(Blueprint $table){ 
     $table->string('slug'); 
    }); 

    Device::update(['slug' => uniqid()]); 
}