网站PHP框架之Laravel5.5(十二)使用Seeder方式向数据库填充数据

14 篇文章 0 订阅

步骤

创建项目

为users表添加字段

数据表迁移(首先需要数据库信息配置正确)

向数据库播种Seeder(创建seeder类)

填充数据

写入数据到数据库的数据表

小补充

网站PHP框架之Laravel系列文章


创建项目

composer create-project laravel/laravel=5.5 blog

 

为users表添加字段

vim /database/migrations/2014_10_12_000000_create_users_table.php

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('role',20);    //添加字段
            $table->string('email')->unique();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

 

数据表迁移(首先需要数据库信息配置正确)

不会配置的请查看网站PHP框架之Laravel5.5(十)用户脚手架系统

php artisan migrate

 

向数据库播种Seeder(创建seeder类)

php artisan make:seeder UsersTableSeeder

相当于创建好了/database/seeds/UsersTableSeeder.php文件

<?php

use Illuminate\Database\Seeder;

class UserTablesSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
    }
}

 

填充数据

在run函数下指定我们要填充的数据,调用DB::table指定users表调用insert方法写入数据

<?php

use Illuminate\Database\Seeder;

class UserTablesSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('users')->insert([
            'name' => 'admin',
            'email' => 'admin@gamacode.com',
            'password' => bcrypt('admin'),
            'role' => 'admin'
        ]);
    }
}

打开/database/seeds/DatabaseSeeder.php

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        // $this->call(UsersTableSeeder::class);
    }
}

run里面默认调用的就是UsersTableSeeder,Seeder如果多了之后,run里面的顺序一定要写好(实际项目中会经常用到后面的表用到前面的表的数据),这里只有一个seeder,不考虑顺序问题直接解开注释:

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $this->call(UsersTableSeeder::class);
    }
}

 

写入数据到数据库的数据表

php artisan db:seed

Seeding: UsersTableSeeder

Seeder写入数据成功,打开数据库查看users表:

 

小补充

向数据库执行创建数据表并且写入所有的seeder填充数据只需要一条命令

php artisan migrate:refresh --seed

 

 

网站PHP框架之Laravel系列文章

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PHP使用命令自动生成模型类Student,需要使用Laravel框架的Artisan命令行工具。首先,需要在终端中进入Laravel项目的根目录,然后运行以下命令: ``` php artisan make:model Student -m ``` 这个命令会生成一个名为Student的模型类,并且会同时生成一个与模型类对应的迁移文件,用于创建students表。在生成迁移文件时,可以使用--create选项指定表名,如: ``` php artisan make:model Student -m --create=students ``` 接下来,在生成的Student模型类中添加$table、$timestamps和$fillable属性,如下所示: ```php <?php namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model { protected $table = 'students'; // 指定数据表名 public $timestamps = true; // 开启自动维护时间戳 protected $fillable = ['name', 'age', 'gender']; // 指定可批量赋值的属性 } ``` 其中,$table属性用于指定模型对应的数据表名,$timestamps属性用于控制是否自动维护created_at和updated_at字段,$fillable属性用于指定可以通过模型的create()方法批量赋值的属性。 最后,需要在students表中添加测试数据,可以使用LaravelSeeder和Factory来实现。首先,需要在终端中运行以下命令生成一个Student模型的Seeder: ``` php artisan make:seeder StudentSeeder ``` 然后,在生成的StudentSeeder类中编写填充数据的逻辑,如下所示: ```php <?php use Illuminate\Database\Seeder; use App\Student; class StudentSeeder extends Seeder { public function run() { factory(Student::class, 10)->create(); } } ``` 以上代码使用Laravel的Factory来生成10条Student模型的测试数据。最后,运行以下命令执行seeder填充数据: ``` php artisan db:seed --class=StudentSeeder ``` 执行完毕后,即可在students表中查看到添加的测试数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值