如何在YII CConsoleApplication應用程序中獲取基礎URL。我嘗試了'Yii :: app() - > request-> getBaseUrl(true)',並且以下面的錯誤結束。在YII Consol應用程序中獲取基礎URL
Undefined index: SERVER_NAME (/var/www/yii/framework/web/CHttpRequest.php:279)
如何在YII CConsoleApplication應用程序中獲取基礎URL。我嘗試了'Yii :: app() - > request-> getBaseUrl(true)',並且以下面的錯誤結束。在YII Consol應用程序中獲取基礎URL
Undefined index: SERVER_NAME (/var/www/yii/framework/web/CHttpRequest.php:279)
有一個控制檯應用程序沒有請求對象。在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',
),
謝謝,我應該在哪裏放置? –
這應該進入您的控制檯配置文件,在組件部分,通常是保護/ config/console.php – Asgaroth
獲取錯誤試圖設置hostInfo'屬性「CConsoleApplication.request」是隻讀.' – user1954544
請嘗試以下wayt得到基本URL頁面,
echo Yii::app()->getBaseUrl(true);
文件系統中的應用程序基礎如何與基本URL相關? –
它返回基本路徑而不是基本URL。 –
@Harish Anchu:我編輯了我的代碼請使用... –
對於Yii2先進的模板,創建params.php
文件,如果它不config
目錄控制檯或通用應用程序的存在,並粘貼以下代碼:
return [
'frontendUrl' => 'http://yourdomain.com'
];
因此,它可以通過以下方式在控制檯訪問:
echo Yii::$app->params['frontendUrl'];
你必須在配置增加/ console.php在組件陣列
'request' => array(
'hostInfo' => 'http://localhost',
'baseUrl' => '',
'scriptUrl' => '',
),
和還要添加urlManager,以便它將刪除index.php?r =站點/動作從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?你能給出一個期望結果的例子嗎? –