Количество просмотров и загрузок - Обновите базу данных при просмотре с помощью лайтбокса и загрузите - PullRequest
0 голосов
/ 27 апреля 2020

Я создал сайт с laravel и у меня есть страница, на которой есть фотографии, которые можно увидеть в высоком разрешении через fancybox или загрузить. В базе данных у меня есть счетчики для каждого действия. и у меня уже есть маршруты GET для подсчета, так как они используются и в других ситуациях.

например: www.mysiste.com/somecode/someothercode/image/viewed

это упрощенная структура каждого изображения. Это вызывается внутри a для каждого l oop .. Я удалил все стили и классы для лучшего чтения ...

<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 в фоновом режиме для перемонтирования .. (самое главное)

Если возможно, я бы хотел нажмите другой URL, когда изображения будут просмотрены в полноэкранном режиме через fancybox.

как это можно сделать?

1 Ответ

1 голос
/ 27 апреля 2020

Вы можете сделать что-то в строках:


    <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>

PhotoController

    public function download(Photo $photo){
       $photo->downloadCount->increment();
       return redirect('/images/......../'. $photo->filename);
    }

    public function fancybox(Photo $photo){
       $photo->fancyboxCount->increment();
       return redirect('/images/......../social_'. $photo->filename);
    }

И обязательно зарегистрируйте свои новые маршруты соответственно:

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