php - 如何修复“Illuminate/Database/QueryException with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column”?
问题描述
我创建了名称为的模型project
php artisan make:model 项目
然后使用php artisan tinker
尝试向其中添加记录。
在我运行时的命令行中:
$project = new App\project; $project->title='My first project'; $project->save();
它显示了这个错误:
Illuminate/Database/QueryException with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'title' in 'field list' (SQL: insert into
projects
(title
,updated_at
,created_at
) values (我的第一个项目, 2019-01-11 06: 46:09, 2019-01-11 06:46:09))'
它不执行$project->save();
并给出此错误。请帮忙。
解决方案
未执行迁移
php artisan make:model project
这是我认为您没有创建迁移文件的错误(请参阅Future Reference
下面我为什么这么说的部分),因为错误表明未找到该列。
为了更好地解决这个问题,我建议您创建一个迁移文件,如下所示:
php artisan make:migration create_projects_table
你可以看到里面database/migrations
,有一个新的文件,名字2019_01_11_153037_create_projects_table
是something。时间和日期与您的不同,但主要关注的是“create_projects_table”
在迁移文件中,您可以看到其中的up()
功能。复制此代码
public function up()
{
Schema::create('projects', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->timestamps();
});
}
}
最后,执行迁移,您应该会看到迁移成功的消息。
php artisan migrate
以后的参考
将来,为了节省时间,您可以将模型与其迁移一起创建,如下所示:
php artisan make:model Project -m
请注意-m
标签,它会为您创建一个迁移文件。之后,继续编辑迁移文件(例如,添加列,如前所述)。
在此处了解有关 Laravel 迁移的更多信息:https ://laravel.com/docs/5.7/migrations
另外一点,请查看 Laravel 关于 Eloquent 模型的约定,以便 Laravel 可以发挥它的魔力: https ://laravel.com/docs/5.7/eloquent#eloquent-model-conventions
你的project
模型应该是正确的Project
编辑
如果您之前以某种方式执行过迁移,请运行不同的迁移(迁移的数量没有限制)。
php artisan make:migration add_column_title_to_projects_table
并且创建了一个新的迁移文件。在up()
函数内部,添加以下代码:
public function up()
{
Schema::table('projects', function (Blueprint $table) {
$table->string('title');
});
}
最后,执行php artisan migrate
推荐阅读
- python - Selenium:此版本的 ChromeDriver 仅支持 Chrome 版本 83
- scala - scala代码通过使用小部件传递动态值来读取镶木地板文件
- dependency-injection - 在 Jersey Servlet 中使用 @Inject,用于实现 Auth,Auth 过滤器传递一个 User 对象,给出 UnsatisfiedDependencyException
- angular - Ag 网格 - this.gridapi.foreachnode 不打印任何内容
- assembly - 英特尔 8086 组件,试图理解标签。问题
- database - 如何在 postgresql 中使用 jsonb 数组条目在表上创建视图
- javascript - 多个页面上的 Firebase SDK 中断数据库引用
- excel - 我可以在 Excel 数据透视表中以不同方式过滤两列吗?
- jboss - Jboss EAP 7 server.log 和应用程序日志的问题
- reactjs - 如何使用 react-data-table-component 实现多列排序