laravel模型建立和数据迁移和数据填充(数据填充没有成功)未完
Posted 与f
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel模型建立和数据迁移和数据填充(数据填充没有成功)未完相关的知识,希望对你有一定的参考价值。
开始创建我们的第一个 Article
模型及其对应迁移文件了,我们在项目根目录运行如下 Artisan 命令一步到位:
php artisan make:model Article -m
-m
是 --migration
的缩写,告知 Artisan 在创建模型同时创建与之对应的迁移文件(我使用的是 Laradock 作为开发环境):
当然,还需要编辑默认生成的迁移文件:
use Illuminate\\Support\\Facades\\Schema; use Illuminate\\Database\\Schema\\Blueprint; use Illuminate\\Database\\Migrations\\Migration; class CreateArticlesTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create(\'articles\', function (Blueprint $table) { $table->increments(\'id\'); $table->string(\'title\'); $table->text(\'body\'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists(\'articles\'); } }
然后我们运行如下命令创建对应数据表:
php artisan migrate
现在我们回到 Article
模型类添加如下属性到 $fillable
字段以便可以在 Article::create
和 Article::update
方法中可以使用它们:
class Article extends Model { protected $fillable = [\'title\', \'body\']; }
数据库填充
Laravel 通过 Faker 库可以快速为我们生成格式正确的测试数据:
php artisan make:seeder ArticlesTableSeeder
生成的填充器类位于 /database/seeds
目录下,我们编辑填充器类如下:
use Illuminate\\Database\\Seeder; use App\\Article; class ArticlesTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { // Let\'s truncate our existing records to start from scratch. Article::truncate(); $faker = \\Faker\\Factory::create(); // And now, let\'s create a few articles in our database: for ($i = 0; $i < 50; $i++) { Article::create([ \'title\' => $faker->sentence, \'body\' => $faker->paragraph, ]); } } }
然后运行填充命令:
php artisan db:seed --class=ArticlesTableSeeder
重复上述过程创建一个用户填充器:
use Illuminate\\Database\\Seeder; use App\\User; class UsersTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { // Let\'s clear the users table first User::truncate(); $faker = \\Faker\\Factory::create(); // Let\'s make sure everyone has the same password and // let\'s hash it before the loop, or else our seeder // will be too slow. $password = Hash::make(\'toptal\'); User::create([ \'name\' => \'Administrator\', \'email\' => \'admin@test.com\', \'password\' => $password, ]); // And now let\'s generate a few dozen users for our app: for ($i = 0; $i < 10; $i++) { User::create([ \'name\' => $faker->name, \'email\' => $faker->email, \'password\' => $password, ]); } } }
编辑 DatabaseSeeder
类:
use Illuminate\\Database\\Seeder; class DatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { $this->call(UsersTableSeeder::class); $this->call(ArticlesTableSeeder::class); } }
后运行 php artisan db:seed
就可以执行所有填充器填充数据。
数据填充怎么没有成功?
参考 (转):http://laravelacademy.org/post/9153.html
以上是关于laravel模型建立和数据迁移和数据填充(数据填充没有成功)未完的主要内容,如果未能解决你的问题,请参考以下文章