2016-02-28 3 views
6

В настоящее время я использую algolia для своей поисковой системы внутри установки laravel, поэтому всякий раз, когда создается запись, она также отправляется в базу данных agolia. Конечно, я хочу отделить свои данные в базе данных algolia с помощью набора тестов для локального развития и набора для живого сайта. Я определил, какие индексы моей базы данных algolia используются в файле javascript.Как получить доступ к переменным larvel .env внутри javascript?

Теперь мне интересно, как я буду реагировать в соответствии с моей переменной APP_ENV, чтобы изменить ее в зависимости от текущей среды? Очевидно, мне нужно помещать материал в оператор if в моем javascript, но как мне сделать свой javascript доступ к переменным .env правильно?

Надеюсь, кто-то может мне помочь.

Cheers.

+1

Вы можете создать резервный ресурс для извлечения переменных среды. Затем отправьте запрос ajax. – Alfa

+0

Обратите внимание, что доступ к переменным окружения возможен без какого-либо списка относительно того, что разрешено, а что нет. Было бы довольно опасно ... Видя, как большинство людей имеют базы данных и серверы электронной почты. –

ответ

14

Вы можете просто повторить эту переменную ENV как яваскрипт строка в вашем взгляде:

<script> 

var name = '{{ env('NAME') }}'; 

alert(name); 

</script> 

И файл .env будет выглядеть следующим образом:

NAME = Alex

+1

Довольно многое, что я сделал сейчас. Я просто надеялся, что будет лучше или готово, так как я думаю, что многие люди могут столкнуться с этим, когда вам нужно проверить свою среду в javascript. Спасибо за помощь! –

1

Существует много способов.

Одним из лучших является передача данных из контроллера в представление:

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()); 

Или вы могли бы использовать Sessions:

\Session::put('env', $app->environment()) 

Из Конечно, вы можете создать выделенный маршрут и получить его с помощью Ajax, но я не думаю, что это хороший способ сделать это в реальной жизни. заявление.

1

уборщика решение заключается в использовании пакета laracasts/utilities для отправки ваших переменных в ваш файл.

Установите его с помощью команды composer require laracasts/utilities.

Затем добавьте use JavaScript; в верхней части вашего контроллера.

И, наконец, отправьте свою переменную таким образом: JavaScript::put([ 'foo' => $bar ]);.

Смежные вопросы