访问刀片

时间:2017-03-27 08:05:07

标签: php laravel

我正在尝试获取一些我存储在.env文件中的API密钥,以便在刀片式javascript中使用。我添加了两个键,如:

APP_ENV=local
APP_KEY=////
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
APP_GOOGLE_MAPS=////
APP_OVERHEID_IO=////

在刀片式服务器中,我需要使用Google Maps API和OverheidIO API密钥。我试过获取一个默认的.env变量,以防我将自定义.env变量格式化错误。:

{{ env('APP.ENV') }} // nothing
{{ env('APP_ENV') }} // nothing
{{ env('APP_ENV'), 'test' }} // returns 'test' 

有人可以帮我调用刀片中的google maps api和overheidio api密钥吗?

14 个答案:

答案 0 :(得分:66)

如果您的Laravel在.env或数据库文件夹中进行了一些修改后或由于任何其他修改后没有按预期工作,则有五个最重要的命令。 这里有完整的解释: https://www.youtube.com/watch?v=Q1ynDMC8UGg

php artisan config:clear
php artisan cache:clear
composer dump-autoload
php artisan view:clear
php artisan route:clear

答案 1 :(得分:16)

我通过以下方式实现它:

@if (env('APP_ENV')!='Production')
Enviroment Test
@endif

我的建议是执行以下命令:composer self-update

答案 2 :(得分:5)

非常重要

所有env(),例如:env('APP_ENV')在生产中(使用php artisan config:cache时调用不工作

使用什么?
 -仅在配置文件中使用env()
 -使用App :: environment()检查环境(.env中的APP_ENV)。
 -将config('app.var')用于所有其他环境变量,例如。 config('app.debug')
 -为您自己的ENV变量创建自己的配置文件。示例:
在您的.env中:

MY_VALUE=foo

示例配置应用程序/myconfig.php

return [
    'myvalue' => env('MY_VALUE', 'bar'), // 'bar' is default if MY_VALUE is missing in .env
];

访问您的代码:

config('myconfig.myvalue') // will result in 'foo'

更多详细信息,请参见HERE

答案 3 :(得分:4)

您应该只直接在配置文件内部访问.env值,然后使用config()帮助程序从配置文件中的所有位置(控制器,视图)访问它们

例如:

.env

TEST_URL=http://test

config / app.php

return [
   'test_url' => env('TEST_URL','http://default.url')
];

resources / views / welcome.blade.php

{{ config('app.test_url')}}

有关详细信息,请参阅laravel文档中的configuration caching

答案 4 :(得分:3)

在config /文件夹中的其他地方使用env()会导致问题。在那里使用env,然后在应用程序的其他部分使用config()

答案 5 :(得分:3)

以下是文档的链接:https://laravel.com/docs/6.x/configuration#retrieving-environment-configuration

在下面的示例中,我在开发环境中吐出了实际错误,但在其他环境中则给出了通用消息。

@if(App::environment('development'))
    Error: {{ $record->s_error }}
@else
    XML Parsing Error - Please double check that your file is formatted correctly.
@endif

答案 6 :(得分:1)

php artisan config:clear

应该解决它

答案 7 :(得分:1)

Laravel 7.11起,您可以在刀片模板中使用@env('')@production()指令:

@env('staging')
    // The application is running in "staging"...
@endenv

@env(['staging', 'production'])
    // The application is running in "staging" or "production"...
@endenv

@production
    // Production specific content...
@endproduction

另请参见Laravel Blade Documentation

答案 8 :(得分:0)

在编辑.env文件以便以简单的方式访问变量之后,应该编写此命令

php artisan config:cache

答案 9 :(得分:0)

如果要获取应用程序的环境,请尝试以下操作:

{{App::environment()}}

我还没有尝试其他变量。

答案 10 :(得分:0)

在此处获取值:config/app.php


在刀片中:

{{ config('app.name', 'default value here') }}

在班级/控制器中:

config('app.name', 'default value here')

答案 11 :(得分:0)

我也很难从.env文件中获取价值,然后我做到了,它有所帮助:

  1. 检查环境文件,看看您是否提供了正确的值。
  2. 然后检查刀片服务器或控制器,在其中使用.env文件中的变量。
  3. 如果以上两个步骤都正确,则只需执行以下步骤-

php artisan config:clear
php artisan cache:clear
php artisan view:clear
php artisan route:clear
作曲家dump-autoload

答案 12 :(得分:0)

您可以通过以下方式获得可验证的环境:

@if (env('APP_ENV')!='Production')
Enviroment Test
@endif

推荐link

答案 13 :(得分:0)

运行以下命令。

php artisan optimize