Yii 2-命令控制器不工作getalias webroot

pbossiut  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(191)

当我通过终端运行命令控制器时,Yii::getAlias('@webroot')不工作=/
命令(队列推送通知控制器. php):

<?php
     namespace app\commands;

     use Yii;
     use yii\console\Controller;

     class QueuePushNotificationController extends Controller
     {
         public function actionIndex()
         {
             echo Yii::getAlias('@webroot');
         }
     }

通过终端执行:

./yii queue-push-notification

返回:

Exception 'yii\base\InvalidParamException' with message 'Invalid path alias: @webroot'

不工作的应用程序?
谢谢你,谢谢你

cclgggtu

cclgggtu1#

在yii2命令中未定义(webroot或web)别名,web index.php yii\web\Application.php已定义方法

protected function bootstrap()
 {
      $request = $this->getRequest();
      Yii::setAlias('@webroot', dirname($request->getScriptFile()));
      Yii::setAlias('@web', $request->getBaseUrl());

      parent::bootstrap();
 }

但是,你可以看到yii\console\Application没有bootstrap()方法,你可以很好的解决这个问题,

public function init()
 {
        Yii::setAlias('@webroot', Specific path );
        Yii::setAlias('@web', Specific path);
        parent::init(); // TODO: Change the autogenerated stub
 }
w9apscun

w9apscun2#

谢谢@ishengge的回答,这里我所做的比

public function init()
{
    Yii::setAlias('@webroot', realpath(dirname(__FILE__).'/../'));
    parent::init(); 
}

相关问题