18

Laravel での環境の動作について私が理解していることは、環境ごとに異なる環境があるということです。そのため、アプリをローカルで実行している場合は、.env.localファイルを持つことができます。テスト中または実稼働中の場合は、.env.testingまたはを使用できます.env.production(間違っていたら訂正してください。)
デフォルトでは、.env編集可能なファイルを取得します。しかし、Laravel で環境を変更するワークフローを教えてください。ドキュメントを試しましたが、取得できませんでした。私を助けてください。

4

2 に答える 2

31

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 に変更するだけです

于 2015-07-18T10:01:04.537 に答える
9

.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 接続から結果を取得できます

于 2015-07-18T09:41:37.310 に答える