Как получить базовый URL в приложении Yii CConsoleApplication
?
Я попробовал Yii::app()->request->getBaseUrl(true)
и получил следующую ошибку.
Неопределенный индекс: SERVER_NAME (/var/www/yii/framework/web/CHttpRequest.php:279)
Как получить базовый URL в приложении Yii CConsoleApplication
?
Я попробовал Yii::app()->request->getBaseUrl(true)
и получил следующую ошибку.
Неопределенный индекс: 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',
),
Property "CConsoleApplication.request" is read only.
- person user1954544; 04.09.2014
Для расширенного шаблона Yii2 создайте файл 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=site/action из 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 следующим образом:
echo Yii::app()->homeUrl;