2017-02-08 4 views
0

私はnetbeansでYII2フレームワークを使用しています。私のプロジェクトがWebサーバーにデプロイされるたびに、localhostからWebサーバーのURLに変更する必要があります。 したがって、
コントローラフォルダにconfig.phpファイルを作成
YIIフレームワーク用のlocalhostとWebサーバー上の絶対URL?

は( "LOCAL"、 "http://localhost")を定義します。
define( "WEB"、 "http://website.com");
グローバル$環境;
$ environment = LOCAL; WEBに//変更あなたがそれを必要とするすべてのファイルのライブ

している場合、トップ

のinclude_once(dirnameは(__FILE __) "/ config.phpを"。)でこれを置きます。

とURLがコードで必要とされるたびに$環境をエコー

を使用してそれを呼び出します。

しかし、$環境が定義されていないというエラーが表示されます。 私は何が間違っていますか?

リファレンスHow to implement absolute URLs on localhost and web server?

+0

...役立ちます。表示されているエラーをチェックするか、 'include_once; 'を' required_once'に設定して、インクルードされていなければ残りのコード行は実行されず、インクルードされているかどうかを調べることができます。 – Gowtham

答えて

1

以下のようにあなたにコンフィグフォルダをdb_config.phpファイルを作成します - その後

define('DB_NAME', ''); 

define('DB_USER', 'root'); 

define('DB_PASSWORD', ''); 

define('DB_HOST', 'localhost'); 

を - あなたはそのグローバル変数にアクセスしたい場合は、このようなユーザーを - ための新しい関数を作成あなたのコントローラの接続

private function connectToDb($db_name) { 
    include Yii::getAlias('@app') . "/config/db_config.php"; // Include db_config.php file 
    $connection = new \yii\db\Connection([ 
     'dsn' => 'mysql:host=' . DB_HOST . ';dbname=' . $db_name, 
     'username' => DB_USER, 
     'password' => DB_PASSWORD, 
    ]); 
    return $connection; 
} 

上記の機能がコントローラからどこからでも呼び出された後以下のように -

$super_conn = $this->connectToDb('my_db_name'); 
$super_conn->open(); 
$sql = "select * form student where id = 1"; //your query 
$super_conn->createCommand($sql)->execute(); 

.. 希望をありがとうこれは私がのcon​​fig.phpファイルがプロジェクトに含まれていないと思う