質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Laravel 6

Laravel 6は、オープンソースなPHPのフレームワーク。Webアプリケーションの開発に適しており、バージョン6はLTSです。5.8での向上に加えて、セマンティックバージョニングの採用やLaravel Vaporとのコンパチビリティなどが変更されています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

2回答

1195閲覧

envの設定が取得できたりできなかったりする

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel 6

Laravel 6は、オープンソースなPHPのフレームワーク。Webアプリケーションの開発に適しており、バージョン6はLTSです。5.8での向上に加えて、セマンティックバージョニングの採用やLaravel Vaporとのコンパチビリティなどが変更されています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2022/09/28 03:45

問題

新たにenv設定を追加したのですが、値が取得できませんでした。

該当のソースコード

php:env/.env

1A_KEY="aaa" 2B_KEY="bbb" 3C_KEY="ccc" //追加

php:config/test.php

1return [ 2 'a_key' => env('A_KEY'), 3 'b_key' => env('B_KEY'), 4 'c_key' => env('C_KEY'), //追加 5]

php:TestService.php

1print config('test.a_key'); //aaa 2print config('test.b_key'); //bbb 3print config('test.c_key'); //null

a_keyとb_keyは既存で、c_keyが追加したものになります。

試したこと

「Laravel env 取得できない」等で調べると

  • cacheをしているとenvの直接参照ができない
  • config経由にすれば解決

という内容ばかり出てくるのですが、

  • config経由で記載している
  • そもそも開発環境なのでcacheしていない(一応config:clearもしてbootstrap/cache/config.phpがないことは確認済み)

上記のことから、参考になりませんでした。

既存のenv設定は取得できているので、新たに追加した内容に不備があるのだとは思いますが、同じenvファイル、同じconfigファイルに同じように記載しているのに何故追加したものだけ取得できないのかがわかりません。

他にも記載しなければならない設定ファイル等があるのでしょうか?

補足情報(FW/ツールのバージョンなど)

Laravel Framework 6.18.40

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/09/28 22:37 編集

例えばそのあとにD_KEYを設置した場合はどうでしょう。 とりあえず10個くらいまで追加して試してみてください。
guest

回答2

0

ベストアンサー

コメントくださった方、ありがとうございます。お返事遅くなってしまい申し訳ありません。

試してみたのですが、結論、解決はしませんでした。

例えばそのあとにD_KEYを設置した場合

複数追加しましたが、やはり読み込まれていません。

読み込まれているキーの値を変更して(例えばAAA=aaa2)、反映されるか確認してみてください

こちらは変更が反映されていました。

$ php artisan tinker

表示結果は問題ないです(読み込みたいファイルパスになっている)

何故うまくいかないのかわからずもやもやした感じではありますが、envを参照せずにconfigに直書きだと読み込めるので、その方法で対応することになりました。
ご教示くださったのにうまくいかず申し訳ないのですが、当質問はクローズいたします。

投稿2022/10/16 13:42

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

読み込まれるはずだと期待しているenvファイルが読み込まれていない可能性が高いです。

  • 読み込まれているキーの値を変更して(例えばAAA=aaa2)、反映されるか確認してみてください
  • app()->environmentFilePath()で読み込まれるenvファイルのパスを確認できます。

console

1$ php artisan tinker 2Psy Shell v0.11.7 (PHP 8.1.11 — cli) by Justin Hileman 3>>> app()->environmentFilePath() 4=> "/var/www/html/.env"
  • 実際に読み込みを行うのは\Dotenv\Store\File\Reader::readFromFile(vendor/vlucas/phpdotenv/src/Store/File/Reader.php)なので、デバッグ出力を埋め込むなどして$pathパラメタを確認します。

php

1 private static function readFromFile(string $path, string $encoding = null) 2 { 3 // デバッグ用の出力を追加。この時点ではまだLogは使えない。 4 fprintf(STDERR, "readFromFile: path=%s\n", $path); 5 6 /** @var Option<string> */ 7 $content = Option::fromValue(@\file_get_contents($path), false); 8 9 return $content->flatMap(static function (string $content) use ($encoding) { 10 return Str::utf8($content, $encoding)->mapError(static function (string $error) { 11 throw new InvalidEncodingException($error); 12 })->success(); 13 }); 14 }

console

1$ php artisan tinker 2readFromFile: path=/var/www/html/.env 3Psy Shell v0.11.7 (PHP 8.1.11 — cli) by Justin Hileman 4>>>

投稿2022/10/06 22:17

crhg

総合スコア1177

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問