數(shù)據(jù)初始化
- 創(chuàng)建數(shù)據(jù)遷移文件
php artisan make:migration seed_categories_data
- 編寫數(shù)據(jù)遷移文件
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class SeedCategoriesData extends Migration
{
public function up()
{
$categories = [
[
'name' => '分享',
'description' => '分享創(chuàng)造嫉晶,分享發(fā)現(xiàn)',
],
[
'name' => '教程',
'description' => '開發(fā)技巧、推薦擴展包等',
],
[
'name' => '問答',
'description' => '請保持友善烦味,互幫互助',
],
[
'name' => '公告',
'description' => '站點公告',
],
];
DB::table('categories')->insert($categories);
}
public function down()
{
DB::table('categories')->truncate();
}
}
假數(shù)據(jù)填充
- 數(shù)據(jù)模型 User.php
- 用戶的數(shù)據(jù)工廠
- 編輯database/factories/UserFactory.php
use Faker\Generator as Faker;
$factory->define(App\Models\User::class, function (Faker $faker) {
static $password;
$now = Carbon::now()->toDateTimeString();
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'password' => $password ?: $password = bcrypt('secret'),
'remember_token' => str_random(10),
//隨機生成小段落
'introduction' => $faker->sentence(),
'created_at' => $now,
'updated_at' => $now,
];
});
- 用戶的數(shù)據(jù)填充 database/seeds/UsersTableSeeder.php
- 執(zhí)行以下命令填充數(shù)據(jù)
php artisan make:seed UsersTableSeeder
- 編輯database/seeds/UsersTableSeeder.php
use Illuminate\Database\Seeder;
use App\Models\User;
class UsersTableSeeder extends Seeder
{
public function run()
{
// 獲取 Faker 實例
$faker = app(Faker\Generator::class);
// 頭像假數(shù)據(jù)
$avatars = [
'https://fsdhubcdn.phphub.org/uploads/images/201710/14/1/s5ehp11z6s.png?imageView2/1/w/200/h/200',
'https://fsdhubcdn.phphub.org/uploads/images/201710/14/1/Lhd1SHqu86.png?imageView2/1/w/200/h/200',
'https://fsdhubcdn.phphub.org/uploads/images/201710/14/1/LOnMrqbHJn.png?imageView2/1/w/200/h/200',
'https://fsdhubcdn.phphub.org/uploads/images/201710/14/1/xAuDMxteQy.png?imageView2/1/w/200/h/200',
'https://fsdhubcdn.phphub.org/uploads/images/201710/14/1/ZqM7iaP4CR.png?imageView2/1/w/200/h/200',
'https://fsdhubcdn.phphub.org/uploads/images/201710/14/1/NDnzMutoxX.png?imageView2/1/w/200/h/200',
];
// 生成數(shù)據(jù)集合
$users = factory(User::class)
->times(10)
->make()
->each(function ($user, $index)
use ($faker, $avatars)
{
// 從頭像數(shù)組中隨機取出一個并賦值
$user->avatar = $faker->randomElement($avatars);
});
// 讓隱藏字段可見峦椰,并將數(shù)據(jù)集合轉(zhuǎn)換為數(shù)組
$user_array = $users->makeVisible(['password', 'remember_token'])->toArray();
// 插入到數(shù)據(jù)庫中
User::insert($user_array);
// 單獨處理第一個用戶的數(shù)據(jù)
$user = User::find(1);
$user->name = 'Summer';
$user->email = 'summer@yousails.com';
$user->avatar = 'https://fsdhubcdn.phphub.org/uploads/images/201710/14/1/ZqM7iaP4CR.png?imageView2/1/w/200/h/200';
$user->save();
}
}
- 注冊數(shù)據(jù)填充 database/seeds/DatabaseSeeder.php
- 編輯database/seeds/DatabaseSeeder.php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->call(UsersTableSeeder::class);
}
}
- 執(zhí)行以下命令生成數(shù)據(jù)
php artisan db:seed
//如果已經(jīng)執(zhí)行過以上命令可以使用以下命令
php artisan migrate:refresh --seed