我尝试将新列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 :(得分: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()]);
}