PHP:Laravel简单搭建和数据填充
一:安装及注意事项
参考:https://learnku.com/laravel/docs
注意:需要安装composer, 注意php版本要求,php一些扩展
composer create-project --prefer-dist laravel/laravel blog -- composer 安装代码
如果是git源码直接使用的请注意执行:
php artisan key:generate
安装一个开发帮助组件包
cd blog # 进入项目 composer require --dev barryvdh/laravel-ide-helper # 安装包 php artisan ide-helper:gen # 生成提示帮助文件
二:配置文件
配置文件位于config目录下,例如database.php ,里面调用的env文件,直接找到.env文件修改配置即可。
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=blog DB_USERNAME=root DB_PASSWORD=
这里修改下app.php几个常用配置,时区和提示语言
'timezone' => 'PRC', 'locale' => 'zh_CN', # 这里的语言包需要去github下载到resouce/lang里面 https://github.com/Laravel-Lang/lang/tree/master/src 'faker_locale' => 'zh_CN',
三:数据填充
这里数据填充使用的faker组件
1、先删除掉model,database/factories,database/migrations 下附带的测试文件 。
2、配置好数据库。
3、创建数据表模型文件和迁移文件
php artisan make:model User -m # 这里补充一个不错的方法,可以同时创建模型控制器和迁移文件 php artisan make:model User -m -c -r
4、修改位于database/migrations下的迁移文件代码
public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('username',50)->comment('用户名'); $table->string('truename',50)->default('')->comment('真实姓名'); $table->string('password',255)->comment('密码'); $table->string('email',50)->nullable()->comment('邮箱');//nullable() 可以为空 $table->enum('sex',['先生','女士'])->default('先生')->comment('性别');//default()默认值 $table->softDeletes();# 生成一个软删除 deleted_at $table->timestamps(); }); }
5、执行该迁移文件,这时候数据就有生成表了
php artisan migrate php artisan migrate:refresh # 重新加载,每次修改迁移文件请重新加载
6、创建数据填充文件和数据工厂
php artisan make:seeder UserSeeder # 创建seeder文件 php artisan make:factory User # 创建一个数据工厂
7、修改数据工厂UserFactory类代码
public function definition() { return [ 'username' => $this->faker->userName, 'truename' => $this->faker->name, 'password' => bcrypt('123456'), 'email'=> $this->faker->email, 'sex' => ['先生','女士'][rand(0,1)] ]; }
// facker 参考https://packagist.org/packages/fzaninotto/faker
8、修改数据填充类UserSeeder代码
public function run() { //清空数据 User::truncate(); //创建100个模拟数据 User::factory(100)->create(); }
9、修改database/seeders下的主调类DatabaseSeeder代码
public function run() { // \App\Models\User::factory(10)->create(); $this->call(UserSeeder::class); }
10、执行填充命令, 等待一会查看数据库数据有了
php artisan db:seed
四:监控输出查看构造sql
在服务提供者 AppServiceProvider 里的boot下面添加
public function boot() { DB::listen(function($sql){ dump($sql); }); }