Получить базовый url в приложении Yii consol



Как получить базовый url в приложении Yii CConsoleApplication.



Я попробовал 'Yii:: app () - > request->getBaseUrl (true)' и в итоге получил следующую ошибку.



Undefined index: SERVER_NAME (/var/www/yii/framework/web/CHttpRequest.php:279)
621   5  

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, чтобы он удалил индекс.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.демонстрация.local

echo Yii::app()->homeUrl;

Comments

    Ничего не найдено.