Ruby 程序员学习 Laravel 框架笔记 (13)-factories, faker and seeding

本来是要来介绍view中的foreach功能,这个功能需要很多数据,因为是循环嘛。

所以要先创建好多数据。

在开发环境中,我们经常需要创建一些用于测试的假数据。

如果你是一名ruby on rails开发者,可能用过下面这两个gem。

https://github.com/stympy/faker

https://github.com/ffaker/ffaker

它们就是用来创建假数据的。

比如说,你要创建一百条用户数据,而每个用户名或邮箱是不同的,这个时候,其实我们用随机的字符串就好了,可是这个叫faker的东西,能让我们的用户名更接近于现实,可读性更强。

在laravel,默认就有这样的功能,我们来介绍一下。

找到database/factories/ModelFactory.php文件,内容如下:

<?php

$factory->define(App\User::class, function (Faker\Generator $faker) {
    static $password;

    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'password' => $password ?: $password = bcrypt('secret'),
        'remember_token' => str_random(10),
    ];
});

代码也不复杂,使用的是App\User::class这个model,$faker->name表示随机的用户名,其他的也比较好解释,密码都为secret

怎么引用这个factory呢?

找到database/seeds/DatabaseSeeder.php文件,修改如下:

<?php
// database/seeds/DatabaseSeeder.php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
        // 新增这一行
        factory(App\User::class, 100)->create();
        // $this->call(UsersTableSeeder::class);
    }
}

怎么来执行这个seed呢?

在终端上输入如下指令:

$ php artisan db:seed

执行完之后数据表users会多出一百条记录:

试着用任何一个新创建的用户登录试试。

登录地址是http://127.0.0.1:8000/login,密码是secret

完结。

本作品采用《CC 协议》,转载必须注明作者和本文链接
咱们的学习圣地是: https://www.qiuzhi99.com,这里有不限于 Nodejs、React、TypeScript、GraphQL 相关的精品课程。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!