我想创建一个只保存10行数据的表。如何通过Laravel 5.3中的migration
进行操作?
答案 0 :(得分:1)
Laravel 5.3提供了seeding
,也与model factories
结合使用。我猜你正在使用Eloquent模型而不是查询构建器。
这是Laravel(https://laravel.com/docs/5.3/seeding#using-model-factories)
的一个例子factory(App\User::class, 10)->create();
此代码通过User Eloquent模型创建10个假用户。伪造用户的声明可以在database/factories/ModelFactory.php
中完成。
再次,来自Laravel(https://laravel.com/docs/5.3/seeding#writing-seeders)的部分例子。您可以直接从现有的DatabaseSeeder调用模型工厂(无需创建新的播种器)。
<?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
在现有表格结构中播种数据php artisan migrate:refresh --seed
用于完全重建数据库并运行播种机完整的文档和示例,请参阅上面提供的链接。
答案 1 :(得分:0)
没有这样的限制。您可以像往常一样创建表,只需添加10行。如果您要求hwo向表中添加10行,请阅读seeding。
此外,如果您只有10个简单行,请考虑使用config file。你可以这样做:
'my-data' => [
1 => ['name' => 'John', 'age' => 30],
2 => ['name' => 'Alan', 'age' => 40],
....
],
使用config('my-config.my-data')
答案 2 :(得分:0)
如果您希望毫无困难地将虚拟数据填入您的表格,您可以Faker Package使用 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,
]);
}
});
这会在你的表中创建总共10行的虚拟数据。希望这有帮助