在 laravel 中创建具有几行迁移的 table
Create table with few rows with migration in laravel
我想创建一个只保存 10 行数据的 table。如何通过 Laravel 5.3 中的 migration
完成?
没有这样的限制。您可以像往常一样创建 table 并只添加 10 行。如果您询问如何将 10 行添加到 table,请阅读 seeding。
此外,如果您只有 10 个简单的行,请考虑使用 config file。你可以这样做:
'my-data' => [
1 => ['name' => 'John', 'age' => 30],
2 => ['name' => 'Alan', 'age' => 40],
....
],
并使用 config('my-config.my-data')
访问此数据
如果您希望将虚拟数据轻松填充到您的 table 中,您可以使用 Faker Package by fzaninotto。
这个过程就像
在终端中通过 运行 下面的命令安装 faker(从项目的根目录):
composer require fzaninotto/faker
然后在您的 routes.php
中,您可以像这样推送虚拟条目:
// Just for an example I am using route to demonstrate the general use
Route::get('/customers',function(){
$faker = Faker\Factory::create();
$limit = 10; // this value sets number of rows to be created
// generate data by accessing properties
for ($i = 0; $i < $limit; $i++) {
User::create([
'name' => $faker->name,
'email' => $faker->email,
'phoneNumber' => $faker->phoneNumber,
]);
}
});
这将在您的 table 中使用一些虚拟数据创建总共 10 行。希望这对您有所帮助
Laravel 5.3提供了seeding
,也结合了model factories
。我猜您正在使用 Eloquent 模型而不是查询生成器。
模型工厂
这里是来自 Laravel (https://laravel.com/docs/5.3/seeding#using-model-factories)
的示例
factory(App\User::class, 10)->create();
此代码通过用户 Eloquent 模型创建了 10 个虚假用户。虚假用户的声明可以在 database/factories/ModelFactory.php
.
中完成
播种
同样,来自 Laravel (https://laravel.com/docs/5.3/seeding#writing-seeders) 的部分示例。您可以直接从现有的DatabaseSeeder调用模型工厂(无需创建新的seeder)。
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(App\User::class, 10)->create();
}
}
运行
php artisan db:seed
在现有 table 结构中播种数据
php artisan migrate:refresh --seed
用于完全重建您的数据库和 运行 播种机
完整的文档和示例,请参阅上面提供的链接。
我想创建一个只保存 10 行数据的 table。如何通过 Laravel 5.3 中的 migration
完成?
没有这样的限制。您可以像往常一样创建 table 并只添加 10 行。如果您询问如何将 10 行添加到 table,请阅读 seeding。
此外,如果您只有 10 个简单的行,请考虑使用 config file。你可以这样做:
'my-data' => [
1 => ['name' => 'John', 'age' => 30],
2 => ['name' => 'Alan', 'age' => 40],
....
],
并使用 config('my-config.my-data')
如果您希望将虚拟数据轻松填充到您的 table 中,您可以使用 Faker Package by fzaninotto。 这个过程就像
在终端中通过 运行 下面的命令安装 faker(从项目的根目录):
composer require fzaninotto/faker
然后在您的 routes.php
中,您可以像这样推送虚拟条目:
// Just for an example I am using route to demonstrate the general use
Route::get('/customers',function(){
$faker = Faker\Factory::create();
$limit = 10; // this value sets number of rows to be created
// generate data by accessing properties
for ($i = 0; $i < $limit; $i++) {
User::create([
'name' => $faker->name,
'email' => $faker->email,
'phoneNumber' => $faker->phoneNumber,
]);
}
});
这将在您的 table 中使用一些虚拟数据创建总共 10 行。希望这对您有所帮助
Laravel 5.3提供了seeding
,也结合了model factories
。我猜您正在使用 Eloquent 模型而不是查询生成器。
模型工厂
这里是来自 Laravel (https://laravel.com/docs/5.3/seeding#using-model-factories)
的示例factory(App\User::class, 10)->create();
此代码通过用户 Eloquent 模型创建了 10 个虚假用户。虚假用户的声明可以在 database/factories/ModelFactory.php
.
播种
同样,来自 Laravel (https://laravel.com/docs/5.3/seeding#writing-seeders) 的部分示例。您可以直接从现有的DatabaseSeeder调用模型工厂(无需创建新的seeder)。
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(App\User::class, 10)->create();
}
}
运行
php artisan db:seed
在现有 table 结构中播种数据php artisan migrate:refresh --seed
用于完全重建您的数据库和 运行 播种机
完整的文档和示例,请参阅上面提供的链接。