2016-07-29 5 views
0

Я хочу, чтобы некоторые настройки были управляемыми пользователем. Из-за этого я храню их в базе данных, получая и кэшируя их впоследствии. Однако, когда я пытаюсь вызвать Cache фасад внутри файла config/config.php, я получаю сообщение об ошибке. Подробности приведены ниже.Кэш-фасад не работает в Laravel 5

Я следующий код, расположенный в app/config/custom.php:

<?php 
// app/config/custom.php 

use Illuminate\Support\Facades\Cache; 

return [ 
    'foo' => Cache::get('foo'); 
]; 

Какие выкладывает следующую ошибку:

Fatal error: Call to a member function get() on a non-object in D:\www\project\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 216

Как это исправить?

+0

Вы включили кеш? – ToyRobotic

+0

@ToyRobotic Да, у меня установлен драйвер кэша в файл. Я подозреваю, что эта проблема вызвана тем, что я пытаюсь использовать Cache внутри файла конфигурации, хотя я понятия не имею, почему это даже проблема. –

+0

Фасады были в глобальном пространстве имен, если я не ошибаюсь внутри helpers.php, вы можете изменить использование для использования кеша; – engvrdr

ответ

1

Как указано в комментариях, файлы конфигурации не предназначены для хранения динамических значений приложения, если они являются динамическими (то есть значениями, специфичными для пользователя), вы должны обрабатывать их в разных частях приложения.

Вы можете сделать что-то доступное по всему миру в своем приложении с помощью поставщиков услуг.

+0

Спасибо за ответ. Я думаю, он отвечает, почему код выше не работает. Я задал другой вопрос, учитывая невозможность использования Facades в конфигурационных файлах. См. Более подробный вопрос здесь: http://stackoverflow.com/questions/38673236/is-it-a-good-idea-to-edit-env-dynamically-in-laravel-5 –

+0

Как обсуждалось, мой ответ здесь не для того, чтобы получить больше репутации, это для общественной выгоды. При этом он отвечает на ваш вопрос и почему вы получаете ошибку и некоторые рекомендации о том, как сделать некоторые ценности доступными для разных частей приложения. Лучший способ сохранить настройки панели администратора - через БД, и вы загружаете эти значения из модели Mailer в том случае, если вы упомянули для настройки параметров почтового сервера. –

+0

Я бы предпочел не загружать настройки где-то, кроме файлов конфигурации, потому что это приведет к излишней путанице в кодовой базе –

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