Laravel—数据库填充及设置自定义
数据库填充
数据库填充是Larevel中的一个快速向数据表插入测试数据的方法,Laravel使用填充类来提供方法,填充类位于database/seeds
目录下
创建填充器
通过Artisan
命令:make:seeder
创建一个填充文件,位于database/seeds
目录
php artisan make:seeder XXXTableSeeder;
一个填充器类默认只包含一个方法:run
,在其中可以插入任何想插入数据库的数据
<?php
use Illuminate\Database\Seeder;
class TestTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//在这里可以编写数据库操作
//可以使用构建器或者DB门面方法
}
}
运行填充器
编写好填充器后,需要先通过dump-autoload
命令生成Composer自动加载器:
composer dump-autoload
之后使用Artisan命令db:seed
来填充数据,默认情况下db:seed 命令运行DatabaseSeeder
类,可以使用--class
选项来指定想要运行的独立的填充器类:
php artisan db:seed
php artisan db:seed –class=TestTableSeeder
使用填充的两种方法:
方法一:
创建填充器->编写填充器->composer dump-autoload
->运行指令php artisan db:seed --class=类名
方法二:
创建填充器->编写填充器->在DatabaseSeeder
文件的run
方法中是使用call
方法->composer dump-autoload
-> 运行指令php artisan db:seed
/**
* 运行数据库填充
*
* @return void
*/
public function run(){
$this->call(UsersTableSeeder::class);
$this->call(PostsTableSeeder::class);
$this->call(CommentsTableSeeder::class);
}
设置自定义函数和自定义类文件
在项目下的composer.json
中添加“autoload”中添加files
属性
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
},
//在这里增加files属性,其中指定自定义的函数或类的路径
"files":[
"app/Library/helper.php"
]
},
之后运行composer dump-auto