Есть ли способ установить кэш для значений appserviceprovider? - PullRequest
0 голосов
/ 19 февраля 2019

В настоящее время я пытаюсь установить кэш для представлений в appserviceprovider.Я пытался так:

public function boot()
{
    $appServiceProvider = Cache::remember('appServiceProvider', 60, function () {
            View::composer('*', function ($view) {
            $view->with('home_references', Reference::where('position', 'home')->orderBy('order', 'asc')->get());
            $view->with('informations', ContactInformation::first());
            $view->with('header_posts', Post::latest()->limit(4)->get());
        });
    });
    return $appServiceProvider;
}

Но этот метод не возвращает значение.Я не должен "возвращаться" сюда, я думаю.Что я должен делать?Я не нашел никакого решения для этого.Заранее спасибо.

Попытка, как это, на самом деле работает нормально:

View::composer('*', function ($view) {
        $view->with('home_references', Cache::remember('home_references', 60, function() {
            return Reference::where('position', 'home')->orderBy('order', 'asc')->get();}));
        $view->with('informations', Cache::remember('informations', 60, function() {
            return ContactInformation::first();}));
        $view->with('header_posts', Cache::remember('header_posts', 60, function() {
            return Post::latest()->limit(4)->get();}));
    });

Но этот путь повторяется.Мне нужно установить кеш как один параметр.В этом примере существует 3 запроса.Но может быть 30 запрос.Я ищу лучшее решение.

1 Ответ

0 голосов
/ 19 февраля 2019

Возвращаемое значение вашего function в вашем Cache::remember вызове - это то, что кэшируется.Если вы не вернетесь, вы просто кешируете null.

. Вместо этого вы захотите что-то вроде этого:

public function boot()
{
    View::composer('*', function ($view) {
        $homeReferences = Cache::remember('home_references', 60, function () {
            return Reference::where('position', 'home')->orderBy('order', 'asc')->get();
        });

        $informations = Cache::remember('informations', 60, function () {
            return ContactInformation::first();
        });

        $headerPosts = Cache::remember('header_posts', 60, function () {
            return Post::latest()->limit(4)->get();
        });

        $view->with('home_references', $homeReferences);
        $view->with('informations', $informations);
        $view->with('header_posts', $headerPosts);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...