在基本的Laravel应用程序中,我在User类中添加了:
使用SoftDeletes;
应用程序不再起作用,因为MySql数据库的User表中没有“ deleted_at”列。我正在尝试通过删除所有表并重新创建它们(或通过删除所有表)来添加此列:
工匠迁移:刷新--seed
工匠迁移:重置
工匠迁移:新鲜
在所有情况下我都会收到错误:
Illuminate \ Database \ QueryException:SQLSTATE [42S22]:找不到列:1054“ where子句”中的未知列“ users.deleted_at”(SQL:select存在(select * from
users
其中{{1} } = user@gmail.com和users
为null),以deleted_at
)
我不明白。如果我要恢复迁移,则工匠只能在我的User类上调用down()方法:
exists
如果未找到列,则删除表应该不会失败。
P.S。我正在使用docker-compose运行php,mysql,artisan,composer,nginx和nodejs-如果可能的话。
答案 0 :(得分:1)
最初给出的答案是错误的,因为问题在某种程度上也是不正确的,在聊天中讨论后,我们发现作者也在AppServiceProvider中进行了迁移,这阻止了通过CLI进行实际迁移。
您可以阅读the chat here。从AppServiceProvider中删除工匠调用可以解决此问题
答案 1 :(得分:1)
您是否还在迁移中添加了软删除?
public function up()
{
Schema::table('users', function(Blueprint $table)
{
$table->softDeletes();
...
});
}