2016-09-28 3 views
3

В Laravel 5.3 в моей функции up() как я могу вставить данные в другую таблицу?Laravel Миграции вставляются в таблицу

я могу видеть только вещи в руководстве по обновлению колонн и т.д.

+0

Точка миграции предназначена для изменения и совместного использования базы данных ** базы данных приложения **, а не для вставки данных. Если вы хотите вставить фиктивные/исходные данные, посмотрите [посев] (https://laravel.com/docs/5.3/seeding). – haitran

+0

@haitran спасибо за сеялку, я бы запустил DB :: table ('db') -> insert ([для каждой партии данных, которую я хочу вставить в db, - глядя на выполнение DB :: table ('db') - > insert ([4 или 5 раз с информацией об ошибке –

+0

Насколько я понимаю, вам нужно вставить несколько строк за раз, если я прав, тогда вам просто нужно поместить свои данные в массив как: 'DB :: table ('users') -> insert ([['array data 1'], ['array data 2'], ['array data 3']]); '. – haitran

ответ

5

Вы можете сделать это как то, что вы делаете в обычном коде Laravel до тех пор, как таблица была создана уже. Например:

public function up() 
{ 
    Schema::create('this_table', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->timestamps(); 
    }); 

    \DB::table('that_table')->insert([]); 
} 

Как и другие, вы должны подумать о том, лучше ли перемещать такую ​​логику в сеялки базы данных. Тем не менее, иногда я считаю, что лучше иметь такую ​​логику, чтобы жить внутри файлов миграции, когда ваша таблица имеет постоянные исходные данные.

FYI, Here - проект с открытым исходным кодом Laravel делает это.