Laravel での環境の動作について私が理解していることは、環境ごとに異なる環境があるということです。そのため、アプリをローカルで実行している場合は、.env.local
ファイルを持つことができます。テスト中または実稼働中の場合は、.env.testing
またはを使用できます.env.production
。(間違っていたら訂正してください。)
デフォルトでは、.env
編集可能なファイルを取得します。しかし、Laravel で環境を変更するワークフローを教えてください。ドキュメントを試しましたが、取得できませんでした。私を助けてください。
2 に答える
Laravel 5.1 をインストールする.env
と、2 つのファイルが取得.env.example
されます。ローカルで作業する場合は、次のように設定します。
APP_ENV=local
APP_DEBUG=true
設定した製品で
APP_ENV=production
APP_DEBUG=false
デバッグ モードでのエラー メッセージ
プロダクション モードからのエラー メッセージ
注: 2 つの .env ファイルが.env
あり、.env.example
名前を付けて別のファイルを作成することもできます.env.production
が、構成をロードするには、ファイルの名前を次のように変更する必要があることに注意してください。.env
編集:したがって、まだローカルで作業していて、テスト用に別のデータベースが必要な場合は、別のファイルを作成して、合計で 3 つの .env ファイルを作成できます。
.env.production
.env.local1
.env.local2
構成を切り替えたいときはいつでも、目的のファイルの名前を .env に変更するだけです
.env.local.php
,を持つという考えは.env.production.php
、Laravel 5 以降廃止されました。現在、L5 では、.env
すべての環境設定を保存する単一のファイルがあります。APP_ENV=local
環境を定義するには、このファイルに入れる必要があります。
プロジェクトを本番環境にデプロイしたら.env
、サーバー上にファイルを作成して定義しますAPP_ENV=production
Laravel Forge のようなサービスを使用すると、環境データを簡単に保存できます。しかし、それは別の話です:)
編集
複数のデータベース接続を利用するには、次のようにします。
あなたのconfig/database.php
ファイルに
<?php
return array(
'default' => env('DEFAULT_DB_CONNECTION', 'mysql'),
'connections' => array(
# Our primary database connection
'mysql' => array(
'driver' => 'mysql',
'host' => 'host1',
'database' => 'database1',
'username' => 'user1',
'password' => 'pass1'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
# Our secondary database connection
'another_mysql' => array(
'driver' => 'mysql',
'host' => 'host2',
'database' => 'database2',
'username' => 'user2',
'password' => 'pass2'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
);
そして、.env
ファイルに別のキーを入れます
DEFAULT_DB_CONNECTION=another_mysql
もちろん、この種の接続は事前定義されています。動的にしたい場合は、次のことができます
$users = DB::connection('another_db_connection')->select('users somehow');
そうすれば、環境で何が設定されていても、セカンダリ mysql 接続から結果を取得できます