web-dev-qa-db-ja.com

Laravel 5.1で環境を変更するには?

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

17
Homo Sapien

Laravel 5.1をインストールすると、ローカルで作業したい場合は.env.env.exampleの2つのファイルを取得します。

APP_ENV=local
APP_DEBUG=true

あなたが設定した製品で

APP_ENV=production
APP_DEBUG=false

デバッグモードのエラーメッセージ

enter image description here

プロダクションモードからのエラーメッセージ

enter image description here

注:2つの.envファイル.env.env.exampleがあります。.env.productionという名前の別のファイルを作成することもできますが、構成をロードするには、ファイルの名前を.envに変更します

EDIT:ローカルで作業していて、テスト用に別のデータベースが必要な場合は、別のファイルを作成して、合計で3つの.envファイルを作成できます。

.env.production
.env.local1
.env.local2

構成を切り替えたいときはいつでも、目的のファイルの名前を.envに変更してください

26

.env.local.php.env.production.phpは、Laravel 5.から廃止されました。5。現在、L5では、単一の.envファイル。すべての環境設定を保存します。環境を定義するには、APP_ENV=localをこのファイルに追加します。

プロジェクトを本番環境にデプロイしたら、.envサーバー上のファイルと定義APP_ENV=production

Laravel Forgeのようなサービスを使用すると、環境データを格納するための素晴らしいシンプルな方法が提供されます。しかし、それはまた別の話です。)

編集する

複数のdb接続を利用するには、次のようにします。

あなたの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接続から結果を取得できます。

9
Almazik G