在Yii控制台应用程序中获取基本URL

dohp0rv5  于 2022-11-09  发布在  其他
关注(0)|答案(5)|浏览(167)

如何在一个Yii CConsoleApplication应用程序中获取基本URL?
我尝试了Yii::app()->request->getBaseUrl(true),结果出现以下错误。
未定义的索引:服务器名称(/var/www/yii/framework/web/chttpRequest.php:279)

wribegjk

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',
),
nfg76nw0

nfg76nw02#

对于Yii2高级模板,如果您的控制台或常用应用的config目录中没有params.php文件,请创建该文件,并粘贴以下代码:

return [
   'frontendUrl' => 'http://yourdomain.com'
];

以便可以在控制台中以以下方式访问它:

echo Yii::$app->params['frontendUrl'];
enxuqcxy

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>',
    ),
),
gcxthw6b

gcxthw6b4#

请尝试以下方法获取基本URL页,

echo Yii::app()->getBaseUrl(true);
sshcrbum

sshcrbum5#

获取如下的主页URL:
http://www.demo.local

echo Yii::app()->homeUrl;

相关问题