Laravel 5 - Как автоматически заполнять таблицу после развертывания приложения?
У меня есть определенные данные, которые должны быть в таблице, чтобы мое приложение работало, в противном случае я получаю сообщение об ошибке.
Например, если вы или кто-то другой вытащил мое приложение из github, и если вы запустите php artisan migrate, а затем попытаетесь протестировать приложение, вы получите сообщение об ошибке: данные не существуют или что-то в этом роде. и это потому, что в таблице нет данных.
Таким образом, идеальное решение будет после запуска:
php artisan migrate
что вы также получите эти необходимые данные в этой таблице.
Это должно быть как-то сделано с сеялкой, но я не знаю как. Может кто-нибудь помочь и привести мне пример?
Как сделать начальное число для этих данных, которое должно попасть в таблицу car_company:
id car_company
1 Фольксваген
2 мерседеса
3 Ауди
4 Порше
Есть 4 строки, и я хочу вставить их после запуска
php artisan db:seed
3 ответа
Сначала запустите следующую команду:
php ремесленник делает: сеялка CarCompanyTableSeeder. Это создаст класс CarCompanyTableSeeder в базе данных \ seed.
Внутри функции public function run() добавьте следующие коды:
public function run()
{
$data = array(
array(
'id' => 1,
'car_company' => 'Volkswagen'
),
array(
'id' => 2,
'car_company' => 'Mercedes'
),
array(
'id' => 3,
'car_company' => 'Audi'
),
array(
'id' => 4,
'car_company' => 'Porsche'
)
);
DB::table('car_company')->insert($data);
}
Существует еще один класс класса DatabaseSeeder, расширяющий Seeder в базе данных \seed. Внутри класса есть функция run (). Добавьте туда следующий код:
public function run()
{
Model::unguard();
$this->call(CarCompanyTableSeeder::class);
Model::reguard();
}
Теперь, когда вы запустите php artisan db: seed, туда будут вставлены нужные вам значения.
На данный момент для таких ситуаций я использую миграцию базы данных. В миграциях не нужно создавать только структуру базы данных, но вы также можете добавлять данные в базу данных, чтобы их можно было запустить php artisan migrate
создать структуру базы данных и создать необходимые данные в базе данных.
После запуска php artisan migrate
тебе нужно бежать php artisan db:seed
Чтобы записать семена в базу данных, вы можете следовать этим инструкциям: https://laravel.com/docs/5.2/seeding
Другой полезный пакет: https://github.com/fzaninotto/Faker, поможет вам подделать данные в базу данных.