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

Artisan::将Laravel升级到4.2后调用(“迁移”)不起作用

闻人志
2023-03-14

我正在使用Artisan::call('迁移');在Laravel控制器方法中,它在Laravel版本为4.1时工作。使用作曲家更新命令更新Laravel后(并在composer.js中设置laravel/框架:4.2.*),此控制器方法(因为这是其中唯一的命令)不再工作。

我甚至还加了“密码”=

这已经发生了:http://laravel.io/forum/06-02-2014-not-able-run-artisan-commands

当我将Artisan::call('migrate')放入try/catch块控制器时,如下所示:

public function ArtMigr(){
    try {
            Artisan::call('migrate');
        } catch (Exception $e) {
            echo $e;
        }   

}

我得到以下错误:

异常“ErrorException”,消息为“使用未定义的常量STDIN-在D:\htdocs\artisan\u error\vendor\symfony\console\symfony\Component\console\Helper\QuestionHelper.php中假定为“STDIN”.php:112堆栈跟踪:#0 D:\htdocs\artisan\u error\vendor\symfony\Component\console\Helper\QuestionHelper\QuestionHelper.php(112):照亮\exception\Handler-

照亮\数据库\控制台\Migrations\Migrate命令-

照明\路由\控制器Dispatcher-

照明\路由\路由器-

照明\粉底\应用-

照明\粉底\应用-

我这边的一切都做好了吗?

composer.js包含:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "laravel/framework": "4.2.*",
        "way/generators": "dev-master"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "stable"
}

共有3个答案

宁锐
2023-03-14

我认为您必须添加一个'-n'=

因为你在生产中,一个“你确定问题被解雇了吗?”

所以会像

Artisan::调用('migrate',数组('-n'=

段渊
2023-03-14

使用未定义的常量STDIN似乎是一个Symfony错误,请参阅github.com/Symfony/Symfony/issues/10795。

一个编辑器更新应该可以解决您的问题。

锺离俊雄
2023-03-14

是的,上一个版本实际上存在问题,所有以前的源代码都不工作,应使用:

Artisan::call('migrate', array('--force' => true));

测试和工作良好。

 类似资料:
  • 我是laravel的新手,我正在探索如何进行迁移。我创建了一个新的用户表,当我运行时,它会给我。我运行了然后运行了,但没有任何乐趣。我如下所示配置了我的。env文件: db_connection=mysql db_host=127.0.0.1 db_password=secret

  • 如果运行,它会失败 未找到基表或视图:1146表*.迁移不存在。 数据库是空的。 如果我运行我会看到迁移表,但它是空的。 DB显示迁移表,但它是空的。 如果我再次运行,数据库再次为空,我会得到相同的错误: 未找到基表或视图:1146表*.迁移不存在。 也许有人知道这里发生了什么。

  • 指导如何从Bootstrap v3.x升级到v4.x,重点是主要的变化,有什么新内容,以及哪些内容被移除了。 升级到 v4 Bootstrap 4 几乎是对整个项目进行了重写。其中最显著的变化都概括到了下面的内容,与以前相比,拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。 当心!它在 flux 中工作的时候和在 v4 alphas 进程中工作是一致的。只有当它在不完整的情况下,我们才会

  • 运行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

  • 主要内容:升级到 Nexus 2.x 最新版本,升级到 Nexus 3.x 最新版本与 Nexus 2.x 相比,Nexus 3.x 为我们提供了更多实用的新特性,随着 Nexus 3.x 对 Maven 的支持越来稳定,很多公司和组织都陆续将数据从 Nexus 2.x 迁移升级到 Nexus 3.x。 SonaType 官方建议我们,使用最新版本 Nexus 2.x 升级到最新版本 Nexus 3.x,并在  Nexus 升级兼容性 一文中为我们提供了各个版本 Nexus 升级

  • 迁移 Navicat Data Modeler 到新的电脑 在 Navicat Data Modeler,选择“Navicat Data Modeler”->“注册”。 【永久许可证】点击“取消激活”以在线取消激活许可证密钥。 【订阅方案】点击“退出”以退出你的 Navicat ID。 在现有的电脑解除安装 Navicat Data Modeler。 在新的电脑重新安装 Navicat Data