如何在一个Yii CConsoleApplication应用程序中获取基本URL?我尝试了Yii::app()->request->getBaseUrl(true),结果出现以下错误。未定义的索引:服务器名称(/var/www/yii/framework/web/chttpRequest.php:279)
CConsoleApplication
Yii::app()->request->getBaseUrl(true)
wribegjk1#
控制台应用程序中没有请求对象。Web应用程序中的请求对象是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', ),
nfg76nw02#
对于Yii2高级模板,如果您的控制台或常用应用的config目录中没有params.php文件,请创建该文件,并粘贴以下代码:
config
params.php
return [ 'frontendUrl' => 'http://yourdomain.com' ];
以便可以在控制台中以以下方式访问它:
echo Yii::$app->params['frontendUrl'];
enxuqcxy3#
您必须在config/console.php中添加组件数组
'request' => array( 'hostInfo' => 'http://localhost', 'baseUrl' => '', 'scriptUrl' => '', ),
并且添加urlManager,这样它将从url中删除index.php?r=site/action,这样您将拥有漂亮的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>', ), ),
gcxthw6b4#
请尝试以下方法获取基本URL页,
echo Yii::app()->getBaseUrl(true);
sshcrbum5#
获取如下的主页URL:http://www.demo.local
echo Yii::app()->homeUrl;
5条答案
按热度按时间wribegjk1#
控制台应用程序中没有请求对象。Web应用程序中的请求对象是CHttpRequest的一个示例,如果要在脱机任务中生成URL,则必须以其他方式配置baseUrl,可能在配置中:
nfg76nw02#
对于Yii2高级模板,如果您的控制台或常用应用的
config
目录中没有params.php
文件,请创建该文件,并粘贴以下代码:以便可以在控制台中以以下方式访问它:
enxuqcxy3#
您必须在config/console.php中添加组件数组
并且添加urlManager,这样它将从url中删除index.php?r=site/action,这样您将拥有漂亮的url
gcxthw6b4#
请尝试以下方法获取基本URL页,
sshcrbum5#
获取如下的主页URL:
http://www.demo.local