Как получить базовый url в приложении YII CConsoleApplication.
Я попробовал «Yii :: app () -> request-> getBaseUrl (true)» и получил следующую ошибку.
Undefined index: SERVER_NAME (/var/www/yii/framework/web/CHttpRequest.php:279)
Объект запроса в консольном приложении отсутствует. объект запроса в веб-приложении представляет собой экземпляр CHttpRequest , если вы генерируете URL-адреса в автономной задаче, вам нужно настроить baseUrl каким-то другим способом, возможно, в конфигурации:
"request" => array( 'hostInfo' => 'http://localhost', 'baseUrl' => '/yii-project/index-test.php', ), // OR 'request' => array( 'hostInfo' => 'http://localhost', 'baseUrl' => '/yii-project', 'scriptUrl' => 'index-test.php', ),
Для расширенного шаблона params.php
создайте файл params.php
если он не существует в каталоге config
вашей консоли или обычного приложения и вставьте следующий код:
return [ 'frontendUrl' => 'http://yourdomain.com' ];
Чтобы к нему можно было получить доступ в консоли следующим образом:
echo Yii::$app->params['frontendUrl'];
Вы должны добавить config / console.php в массив компонентов
'request' => array( 'hostInfo' => 'http://localhost', 'baseUrl' => '', 'scriptUrl' => '', ),
а также добавить urlManager, чтобы он удалил index.php? r = сайт / действие из URL-адреса, и у вас будут красивые URL-адреса
'urlManager' => array( 'urlFormat' => 'path', 'showScriptName' => false, 'rules' => array( '<controller:\w+>' => '<controller>/index', '<controller:\w+>/<id:\d+>' => '<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', '<controller:\w+>/<action:\w+>' => '<controller>/<action>', ), ),
Пожалуйста, попробуйте следующий путь, чтобы получить базовую страницу URL-адреса,
echo Yii::app()->getBaseUrl(true);
получить домашний url вот так:
Http: //www.demo.local
echo Yii::app()->homeUrl;