Как получить данные из кеша Laravel для пакета медиабиблиотеки LaravelPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как получить данные из кеша Laravel для пакета медиабиблиотеки Laravel

Сообщение Anonymous »

При создании публикации я загружаю фотографию с помощью медиа-библиотеки Laravel и могу просто получить данные из медиа-библиотеки, используя:

Код: Выделить всё

$blog->getFirstMediaUrl('blog');
Я использую функцию кэширования Laravel для лучшей производительности и минимального количества запросов с Redis. Я сохранил данные блога в кеше, как показано ниже:

Код: Выделить всё

$blogs=Blog::where('publication_status', 1)
->select('id', 'admin_id', 'category_id', 'sub_category_id',
'blog_section_id', 'blog_title', 'slug',
'blog_short_description', 'blog_long_description', 'author_name',
'thumbnail', 'publication_status', 'created_at')
->orderBy('id', 'DESC')
->get();

Cache::forever('blogs', $blogs);
В то время я кэшировал фотографию медиатеки, как показано ниже:

Код: Выделить всё

$media=Media::all(); Cache::forever('media', $media);
После этого я получил данные своих блогов во внешнем интерфейсе, как показано ниже:

Код: Выделить всё

$data['blogs']=cache()-get('blogs', function (){
Blog::where('publication_status', 1)
->select('id', 'admin_id', 'category_id', 'sub_category_id', 'blog_section_id', 'blog_title', 'slug',
'blog_short_description', 'blog_long_description', 'author_name',
'thumbnail', 'publication_status', 'created_at')
->orderBy('id', 'DESC')
->get();
});

return view('Frontend.includes.homepage.homepage', $data);
и передайте $data в файл представления, как показано ниже:

Код: Выделить всё

[list]
@foreach($blogs
->where('thumbnail', 1)
->where('blog_section_id', 1)
->take(1)
as $main_section)

[*]
 [url={{ route(]slug) }}" class="featured_img"> [i]                $main_section->getFirstMediaUrl('blog') }}">  [/url]

 [url={{ route(]slug) }}">{{ $main_section->blog_title }}[/url]

{{ $main_section->blog_short_description }}


[/i] {{ $main_section->created_at->diffForHumans() }}

@endforeach
[/list]

Здесь блоги успешно извлекаются из кэша без данных медиабиблиотеки:

Код: Выделить всё

$main_section->getFirstMediaUrl('blog');
Но я хочу получить данные моей медиатеки из кеша, например блогов, для минимального выполнения запроса, что я могу сделать?

Подробнее здесь: https://stackoverflow.com/questions/571 ... ry-package
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»