В настоящее время я использую algolia для своей поисковой системы внутри установки laravel, поэтому при создании записи она также отправляется в базу данных agolia. Конечно, я хочу разделить свои данные в базе данных algolia с набором тестов для локальной разработки и производственным набором для живого сайта. Я определил, какие индексы моей базы данных algolia используются в файле javascript.
Теперь мне интересно, как я реагирую соответственно на мою переменную APP_ENV, чтобы изменить ее в зависимости от моей текущей среды? Очевидно, мне нужно поместить материал в оператор if в моем javascript, но как мне сделать, чтобы мой javascript правильно обращался к переменным .env?
Надеюсь, кто-нибудь может мне помочь.
Приветствия.
Вы можете просто вывести переменную env в виде строки JavaScript в вашем представлении:
<script>
var name = '{{ env('NAME') }}';
alert(name);
</script>
И ваш файл .env будет выглядеть так:
NAME = Alex
Как видно из документации: теперь вы можете легко использовать env
переменные путем добавления префикса к ключу в вашем файле .env MIX_
,
MIX_SENTRY_DSN_PUBLIC=http://example.com
После того, как переменная была определена в вашем .env
файл, вы можете получить доступ через process.env
объект.
process.env.MIX_SENTRY_DSN_PUBLIC
Есть много способов.
Одним из лучших является передача данных из контроллера в представление:
if ($app->environment('local'))
{
// Here you can generate some <script></script> code or you could just generate
// hidden div like <div id="environment" style="display:none">local</div>
}
или вот так:
return view('myView')->with('env', $app->environment());
Или вы можете использовать сеансы:
\Session::put('env', $app->environment())
Конечно, вы можете создать выделенный маршрут и получить его с помощью Ajax, но я не думаю, что это хороший способ сделать это в реальном веб-приложении.
Более чистым решением является использование laracasts/utilities
пакет для отправки ваших переменных в ваш файл.
Установите его с composer require laracasts/utilities
команда.
Затем добавьте use JavaScript;
в верхней части вашего контроллера.
И, наконец, отправьте вашу переменную следующим образом: JavaScript::put([ 'foo' => $bar ]);
,