当前位置: 首页 > 知识库问答 >
问题:

Laravel迁移,在hasColumn方法上失败

邓仲卿
2023-03-14

我使用laravel 5.2版本和PHP 7.1。我试图从我的laravel项目中迁移文件,其中我有代码来检查列的存在,如下所示-

if (!Schema::hasColumn('table1', 'column1')) {
    // Add column1
}

我知道代码非常好,在设置相同的代码时,这已经运行了好几次。但现在我在另一台机器上尝试,失败了,出现了一个错误-

[ErrorException]
未定义的属性:stdClass::$column\u name

如果我从代码中删除hasColumn检查,我可以消除这个错误,但这是我在整个代码中编写的内容,不能仅仅为了运行迁移而修改每个迁移。

非常感谢您在这方面的任何帮助。

堆栈跟踪:

[ErrorException]
未定义的属性:stdClass::$column\u name

异常跟踪:()位于/private/var/www/html/whitelabel\u eb/vendor/laravel/framework/src/illumb/Database/Query/Processors/MySqlProcessor.php:18 illumb\Foundation\Bootstrap\HandleExceptions-

共有2个答案

辛承志
2023-03-14

看看这个问题,可能https://github.com/laravel/framework/pull/21037这解决了它,但是这个变化是为Laravel 5.5做的。Laravel 5.2不再受支持,因此您可以在需要时尝试使用自己的叉子进行此修复-您可以为此使用Composer VCS功能。

当然,升级到最新版本可能是个好主意(许多问题在以后的版本中得到了解决),但是假设你的应用程序很复杂,没有像样的测试,这可能是有风险的。

萧晔
2023-03-14

我做了以下更改以解决此问题。转到以下路径:/vendor/laravel/framework/src/illumb/Database/Query/Processors/MySqlProcessor.php

更改此项,返回$r-

 类似资料:
  • 我有大约30个迁移文件。 当它到达包含重命名列的迁移时: 它只会在迁移时出错(比如说,第15个)。它可以正常运行所有其他迁移。如果我对此进行评论,那么它将按预期完成。 我运行或 我得到以下错误: PHP-v给了我这个: MySQL-v给了我这个: 我使用的是“条令/dbal”:“~2.3” 此错误仅在本地计算机上运行迁移时发生。在我的docker-compose堆栈和Vagant框中按预期完成。所

  • 我有以下错误。有人在理解为什么? PHP工匠迁移 创建_users_table.php

  • 运行php artisan migrate时,它会给出以下错误消息 1.PDOException::(“SQLSTATE[HY000][2002]连接被拒绝”)/Users/redblac/olivertes/vendor/laravel/framework/src/illusted/Database/Connectors/Connector.php:70 2 PDO::_构造(“mysql:ho

  • 迁移cache分页 仓库地址: cache 安装 composer require illuminate/cache 暂时实现 redis方式 还需安装 composer require illuminate/redis composer require predis/predis //个人比较喜欢predis 启动predis function frameInitialized() {

  • 迁移pagination分页 仓库地址: pagination 安装 composer require illuminate/pagination 我们可以用illuminate/pagination分页了 $users = User::paginate(15); //在你的模板 {!! $users->links() !!} 然后你将看到一堆莫名其妙的错误,没关系,让我们来解决它。既然不能像l

  • 迁移数据库ORM层 迁移模板Blade 迁移分页 迁移验证器 迁移Cache