Получить базовый url в приложении Yii consol
Как получить базовый url в приложении Yii CConsoleApplication.
я попробовал "Yii:: app()->request->getBaseUrl(true)" и закончил со следующей ошибкой.
Undefined index: SERVER_NAME (/var/www/yii/framework/web/CHttpRequest.php:279)
5 ответов
в консольном приложении нет объекта запроса. объект запроса в веб-приложении является экземпляром 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',
),
для расширенного шаблона 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, чтобы удалить индекс.РНР?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.демонстрация.местные
echo Yii::app()->homeUrl;