Yii2 -

2017-03-16 3 views
1

I 단자를 통해 명령 컨트롤러를 실행 Yii::getAlias('@webroot')은 =/Yii2 -

명령을 작동하지 않습니다 (QueuePushNotificationController.php) 웹 루트 명령 컨트롤러가 작동하지 getalias :

<?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' 

응용 프로그램에서 작동하지 않습니까?

감사합니다. yii2 명령 undefind (웹 루트 또는 웹) 별명, 웹 index.php를 YII의 \ 웹 \ Application.php의 defind 방법

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

     parent::bootstrap(); 
} 

만에

답변

3

, 당신은 어떤 부트 스트랩() 메소드 YII의 \ 콘솔 \ 응용 프로그램을 볼 수 있습니다 . 이 문제를 잘 해결할 수 있습니다.

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