web-dev-qa-db-ja.com

YiiフレームワークでベースURLを設定する方法

私がする時

print_r(Yii::app()->request->baseUrl)

空の文字列を取得します。 Yiiフォーラムの投稿 これはデフォルトでは空白です と書かれています。絶対値のURLを使用できるようにデフォルト値を変更するにはどうすればよいですか?

9
David Xia

そのフォーラムの投稿が言うように、プラットフォームによって、またはWebアプリがデフォルトのフォルダーにない場合は、異なる場合があります。
これらのすべてが私にとってうまくいきます:

echo Yii::app()->request->baseUrl."<br/>" ;
print_r(Yii::app()->request->baseUrl);
echo "<br/>";
var_dump(Yii::app()->getBaseUrl(true));
echo "<br/>";
echo Yii::app()->request->getBaseUrl(true);

ターミナルで次のコマンドを使用して、デフォルト設定でyiicを使用してWebアプリを作成しましたyiic webapp /path/to/webapp
これにより、Webアプリに必要なディレクトリ構造と、デフォルトのスケルトンファイルも生成されます。試してみて、動作を確認してください。私はyii自分自身に新しいです。

編集:

このソリューションはopで機能した可能性がありますが、baseUrlを設定できる正しい方法は この質問に対するeccoの回答 で示されます。

12
bool.dev

/path/to/application/protected/config/main.phpを編集してデフォルト値を変更できます。リクエストコンポーネントを追加し、baseUrlポーパーティを設定します。

return array(
    ...
    'components' => array(
        ...
        'request' => array(
            'baseUrl' => 'http://www.example.com',
        ),
    ),
);
33
ecco

bootstrapファイル(index.php)がWebルートにあるため、空である可能性があります。そうでない場合は、値が表示されます。変更すると、目的が失われます。

あなたは次のように使うでしょう:

href="<?php echo 'http://www.myhost.com' . Yii::app()->request->baseUrl; ?>/css/screen.css"

ほとんどの場合、パスは変更されませんが、変更した場合、たとえば、Yiiアプリをサブディレクトリ内に配置すると、移植性が高まります(httpメソッドを削除して、上記のホスト名は、ユーザーがいるのと同じホスト上で機能します。)

3
ldg

Yii :: app()-> baseUrlは、URLからindex.phpへの相対パスのみを返します。例:127.0.0.1/index.phpは '' 127.0.0.1/yii/index.phpが '/ yii'を返します

1
balrok

echo Yii::$app->baseUrl(true)を試してください
真のパラメータが必要なことを行うことに注意してください。

0
Kushagra

URLヘルパーを使用してURLを生成する場合は、baseUrlキーをUrlManagerコンポーネントに設定する必要があります

_ 'urlManager' => [       
        'baseUrl' => 'http://example.com', 
_

次に、URLヘルパーを使用して絶対URLを作成できます。

echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name'], true); // output ===> http://example.com/index.php?r=site%2Findex&src=ref1#name

0
Sachin G.

Yii 2.0.13.1を使用すると、以下のコードは正常に動作しています

<?php echo Yii::$app->request->baseUrl; ?>
0
Anoop Saini