Laravel 视图和下载计数-使用lightbox更新视图上的数据库并下载

Laravel 视图和下载计数-使用lightbox更新视图上的数据库并下载,laravel,fancybox,counter,Laravel,Fancybox,Counter,我用laravel建立了一个网站,有一个页面,可以通过fancybox看到或下载高分辨率的图片。在数据库中,每个操作都有计数器。我已经为计数设置了路线,因为它们也用于其他情况 例如:www.myiste.com/somecode/someothercode/image/view 每个图像的简化结构如下所示。。这在for each循环内调用。。为了更好地阅读,我删除了所有样式和类 <div > <div class="card" style="background-col

我用laravel建立了一个网站,有一个页面,可以通过fancybox看到或下载高分辨率的图片。在数据库中,每个操作都有计数器。我已经为计数设置了路线,因为它们也用于其他情况

例如:www.myiste.com/somecode/someothercode/image/view

每个图像的简化结构如下所示。。这在for each循环内调用。。为了更好地阅读,我删除了所有样式和类

<div >
    <div class="card" style="background-color: lightgray">
        <div >
            <a data-fancybox="gallery" href="/images/......../{{$photo->filename}}">
                <img class="card-img" src="/images/......../thumb/thumb_{{$photo->filename}}">
            </a>
        </div>

        <div class="card-footer">
            <div>
                <div>
                    <a download="{{$photo->filename}}" href="/images/......../{{$photo->filename}}">
                        <span>Download (Hi-Res)</span>
                    </a>
                </div>
                <div>
                    <a download="social_{{$photo->filename}}" href="/images/......../social_{{$photo->filename}}">
                        <span>Download (Social-Res)</span>
                    </a>
                </div>
            </div>
        </div>
    </div>
</div>

我需要的是,当他们点击下载按钮时,它会在后台调用某个URL进行向上计数。。(最重要)

如果可能的话,我想在通过fancybox全屏查看图像时点击另一个URL


如何做到这一点?

您可以采取以下措施:


    <a data-fancybox="gallery" href="{{ route('photo.fancybox', ['photo' => $photo])}}">
        <img class="card-img" src="/images/......../thumb/thumb_{{$photo->filename}}">
    </a>

...

    <a href="{{ route('photo.download', ['photo' => $photo])}}">
        <span>Download (Hi-Res)</span>
    </a>
并确保相应地注册您的新路线:

Route::get('photo/download', 'PhotoController@download')->name('photo.download');
Route::get('photo/fancybox', 'PhotoController@fancybox')->name('photo.fancybox');

将a标记href更改为控制器函数,该函数将增加下载计数并返回图像控制器函数仅计数。。它不会返回下载链接,因为它也在其他地方使用。。我目前正试图用vue和axios来实现这一点。。。那应该行。。但是我仍然没有关于fancybox部分的任何线索对于fancybox部分,您可以使用
afterShow
callback向某个页面发出ajax请求,在该页面上更新视图计数。谢谢,这解决了下载计数器的问题,但没有解决视图计数器的问题。。你也有解决方案吗?如果你是说FancyBox视图,你可以用同样的想法创建另一个函数。让我更新我的代码,解决第一次单击图像的问题,但如果他们使用左/右箭头转到下一张图片,则不会更新。只要您的转盘中的所有fancybox图片的
href
正在呼叫控制器,它将起作用,给我半个小时的时间,我会报告。。谢谢你的帮助
Route::get('photo/download', 'PhotoController@download')->name('photo.download');
Route::get('photo/fancybox', 'PhotoController@fancybox')->name('photo.fancybox');