Yii框架控制台报错: The "id" configuration for the Application is required

一、背景

      博主新接手的项目是使用Yii框架开发的,在使用yii的控制台命令的时候报错:The "id" configuration for the Application is required,那咱们就来研究研究这个到底是为啥。

二、排错过程

1、错误是哪里报的

用过Yii框架的都知道,在入口文件index.php里面,有一句是实例化application对象:

$application = new yii\console\Application($config);
$exitCode = $application->run();

打开Yii/base/application.php文件,里面有个preInit方法,定义了id缺少的报错信息,根据这个信息,可以知道肯定是缺少了应用id。但是应用id这东西是yii的标配,是必须会有的东西,那就是配置文件的原因了。

2、查看配置文件

      博主查看自己本地的配置文件,发现已经定义了id这个属性,那么为什么还是会找不到呢?随手修改一下配置文件,还是一样的报错。这是不是就意味着我本地的这个配置文件根本就没用到?

后来在网上找到一篇文章,人家也是说可能是配置文件的原因:
https://stackoverflow.com/questions/33496841/yii2-error-the-id-configuration-for-the-application-is-required

3、查看我输入的命令行命令

php C:/phpStudy/PHPTutorial/WWW/xxx/yii 控制器/方法 --appconfig=C:/phpStudy/PHPTutorial/WWW/xxx/xxx/config/main-release.php

      发现后面有个--appconfig属性,这个东西好像是指定配置文件的。去官方文档一看,果然,就是因为我指定的配置文件是console下面的配置文件,所以才报的错。得了,把配置文件都给弄好,继续测试。

4、新的问题

The configuration file does not exist:   配置文件不存在

      说实话,当时看到这个报错,内心有点崩溃,问题肯定是在配置文件上出错了,该引入新建的配置也都弄好了,结果你跟我说配置文件不存在?没办法,继续找问题,刚才还是能加载配置文件的,这会儿为什么加载不了了呢?

问题所在:
在这里插入图片描述
如图所示,多了个空格,emmm,有点难受。

三、关于命令行传参问题

1、传参数的写法

Yii控制台官方文档

这部分大家可以看看官方的文档,需要跟参数的话,直接在指定配置文件之前加上参数即可,类似于这样的:

php C:/phpStudy/PHPTutorial/WWW/xxx/yii 控制器/方法 20181102 2 --appconfig=C:/phpStudy/PHPTutorial/WWW/xxx/console/config/main-release.php 

这里的20181102和2都是我传的参数。

2、接收参数

 /**
     * 这部分主要是获取用户传过来的日期参数,进行自动查询等操作
     * @params $g_data 传过来的时间日期参数,格式为20180603
     * @params $projectID 默认为5
     * @params $type  获取的节点类型,方便后面的查询等
     */
    public function actionXzzz($params = '',$type = 0)
    {
      
        $this->params = $params;
        $this->type = $type;
     
    }

      在控制器中直接把咱们在命令行中加的参数,当做控制器方法的参数传进去即可。可以给参数一个默认值,这样的话能防止一些小bug。使用的话直接拿来用就可以。

      博主从laravel转到Yii框架,感觉Yii框架还是挺麻烦的,不过php发展到现在,各个框架之间其实已经很接近了。不管是从目录结构还是到整体的封装,composerORM的使用等,都有一定的相似性。挺好的,以前的php是一盘散沙,改用框架的成本非常之高。现在嘛,维护成本明显下降,php会越来越好的!

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值