我正在学习使用 Laravel 的 Lumen 框架进行后端开发,并且正在按照Laravel 的文档编写数据库种子类。以下是代码:
模型app\Photo.php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Photo extends Model
{
protected $fillable = [
'link', 'category_id', 'date'
];
}
模型厂database\factories\ModelFactory.php
$factory->define(App\Photo::class, function (Faker\Generator $faker) {
return [
'link' => 'https://placehold.it/' . mt_rand(200, 400),
'category_id' => rand(1, 6),
'date' => date("Y-m-d", mt_rand(1263618000, 1481428800))
];
});
DatabaseSeeder
和PhotoTableSeeder
班级database\seeds\DatabaseSeeder.php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
public function run()
{
$this->call('PhotoTableSeeder');
}
}
class PhotoTableSeeder extends Seeder
{
public function run()
{
factory(App\Photo::class, 10)->create();
}
}
以前 MySQL 数据库中的表名是photos
,并且播种使用以下命令可以完美地工作php artisan db:seed
:
播种:PhotoTableSeeder
但是当我将表名更改为photo
并运行相同的命令时,出现了这些错误:
[Illuminate\Database\QueryException] SQLSTATE[42S02]:未找到基表或视图:1146 表“homestead.photos”不存在(SQL:插入“照片”(“链接”、“类别 ID”、“日期” ) 值 ( https://placehold.it/259 , 3, 2012-05-28))
[PDOException] SQLSTATE [42S02]:未找到基表或视图:1146 表 'homestead.photos' 不存在
我不知道为什么仍然调用旧表名。我猜它被保存在某个地方或者我错过了什么,我无法找出错误的原因。