douyoufan7881 2019-07-19 18:21
浏览 79

如何从Laravel媒体库包的Laravel缓存中检索数据

When posts create, I upload a photo using Laravel media library and I can simply retrieve data from media library using:

$blog->getFirstMediaUrl('blog');

I use Laravel cache feature for best performance and minimum query with redis. I stored blog data in cache like below:

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

At that time I cached media library photo also like below:

$media=Media::all(); Cache::forever('media', $media);

After that I retrieved my blogs data in frontend like below:

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

and pass $data in view file like below:

<div class="single_post_content_left">
    <ul class="business_catgnav  wow fadeInDown">
        @foreach($blogs
        ->where('thumbnail', 1)
        ->where('blog_section_id', 1)
        ->take(1)
        as $main_section)

        <li>
            <figure class="bsbig_fig"> <a href="{{ route('article', $main_section->slug) }}" class="featured_img"> <img alt="" src="{{
                $main_section->getFirstMediaUrl('blog') }}"> <span
                class="overlay"></span> </a>

                <figcaption> <a href="{{ route('article', $main_section->slug) }}">{{ $main_section->blog_title }}</a>
                </figcaption>
                <p>{{ $main_section->blog_short_description }}</p>
            </figure>
        </li>

        <small class="pull-right"><i class="fa fa-clock-o"></i> {{ $main_section->created_at->diffForHumans() }}</small>

        @endforeach
    </ul>
</div>

Here blogs are retrieve from cache successfully without media library data:

$main_section->getFirstMediaUrl('blog');

But I want to retrieve my media library data from cache like blogs for minimum query run, what can I do?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!