其他分享
首页 > 其他分享> > laravel8 使用Faker 填充数据

laravel8 使用Faker 填充数据

作者:互联网

首先 ,我们需要下载最新版本的laravel框架:

composer create-project --prefer-dist laravel/laravel www.zfw.com

在下载完成后可是切换目录到下载完成后的 www.zfw.com 目录下:

cd www.zfw.com

接着,我们可以在框架中安装一个PHPstorm的开发插件,可以使我们的开发更加方便快捷:

composer require barryvdh/laravel-ide-helper

下载完成插件后,使用该命令让我们使用的编辑器更好的支持插件:

php artisan ide-helper:gen

在这里插入图片描述
出现上图则为安装成功。

接下来,我们可能在开发时使用的环境为小皮系统,此时需要我们开启

在这里插入图片描述
然后我们需要为新生成的框架配置一个新的本地域名,注意!刚下载的框架如果被小皮系统设置域名后,此时的隐藏入口文件内容会消失,需要重新写入入口文件!

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

设置好本地域名之后,我们可以在网站中输入刚设置的本地域名,查看是否可以进入:

在这里插入图片描述

框架搭建基本完成,现在开始做填充的配置

此时,我们需要在框架的配置文件中修改框架需要连接的数据库信息,下面的配置信息需要写入在框架根目录的env文件中:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=wwwzfwcom
DB_USERNAME=root
DB_PASSWORD=root
DB_PREFIX=zfw_

其中database为数据库中的数据库名,username为数据库的账号,password为数据库的密码,prefix为表前缀

接下来,我们使用的数据库工具为Navicat,需要新建数据库:

在这里插入图片描述

紧接着,我们需要在框架根目录下的config文件夹中找到一个名为database.php的文件中找到此方法并修改:

'prefix' => env('DB_PREFIX'),

然后我们可以修改框架的本地配置,由于我们使用的laravel框架为国外的开发者搭建,所以我们需要改变框架的本地化配置:

1:更改根目录下app.php中timezone的时区为:

'timezone' => 'PRC',

2:下载中文语言包,放入框架的 根目录->resources->lang 中

首先使用composer下载:

composer require "overtrue/laravel-lang:~3.0"

其次替换config/app.config中的类

将:

Illuminate\Translation\TranslationServiceProvider::class,

替换为:

Overtrue\LaravelLang\TranslationServiceProvider::class,

最后修改config/app.config中的locale:

'locale' => 'zh-CN',

3:将Faker填充类配置修改为:

'faker_locale' => 'zh_CN',

这样基本配置完成,下面开始设置迁移数据表,创建生成模型和迁移文件:

php artisan make:model User -m

接着,在框架中的database/migrations文件夹中找到刚创建的用户表user

在这里插入图片描述
在名为up的方法内写入创建数据库的信息:

            $table->bigIncrements('id');
            // 角色
            $table->unsignedInteger('role_id')->default(0)->comment('角色ID');
            $table->string('username',100)->comment('账号');
            $table->string('truename',50)->default('未知')->comment('真是姓名');
            $table->string('password',255)->comment('密码');
            //nullable 可以为null
            $table->string('email',50)->nullable()->comment('邮箱');
            $table->string('phone',15)->default('')->comment('手机号码');
            $table->enum('sex',['先生','女士'])->default('先生')->comment('性别');
            $table->char('last_ip',15)->default('')->comment('登录IP');
            $table->timestamps();
            //软删除 生成一字段 deleted_at字段
            $table->softDeletes();

然后此时执行迁移文件:

php artisan migrate

此时,可能会发生这样的报错信息在这里插入图片描述
我们需要在app->Providers->AppServiceProvider中的boot中使用

use Illuminate\Support\Facades\Schema;


    public function boot()
    {
        Schema::defaultStringLength(191);
    }

这样就可以继续执行迁移命令了

在这里插入图片描述
最后,我们开始使用Faker填充数据

创建用户的填充文件

php artisan make:seeder UserSeeder

此时,我们需要在user模型层中使用

protected $guarded = [];

不然,会无法填充数据

接着,我们生成一个数据工厂

php artisan make:factory UserFactory -m Models/User

在UserFactory.php文件中修改填充文件的数据

'username' => $this->faker->userName,
            'password' => bcrypt('admin'),
            'truename' => $this->faker->name,
            //password_hash('admin666')
            'email' => $this->faker->unique()->safeEmail,
            'phone' => $this->faker->unique()->phoneNumber,

在userseeder.php文件中:

        //重置表数据
        User::truncate();

        User::factory()
            //生成100条数据
            ->count(100)
//            ->hasPosts(1)
            ->create();
        //修改id=1用户
        User::where('id',1)->update(['username'=>'admin']);

最后在DatabaseSeeder.php中修改总调用

        $this->call([
            UserSeeder::class
        ]);

到此,填充完成
在这里插入图片描述

标签:comment,laravel8,填充,DB,Faker,框架,table,php
来源: https://blog.csdn.net/weixin_54356942/article/details/120171140